本文将介绍javascript–查找单个元素的所有数据属性的详细情况,特别是关于js查找元素的基本方法的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关
本文将介绍javascript – 查找单个元素的所有数据属性的详细情况,特别是关于js查找元素的基本方法的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于javascript – jQuery所有数据属性的每个循环、javascript – jQuery:删除前n个元素后的所有元素?、javascript – PHP – 检索与单选按钮对应的所有数据、javascript – ReactJs查找绑定到元素的所有事件的知识。
本文目录一览:- javascript – 查找单个元素的所有数据属性(js查找元素的基本方法)
- javascript – jQuery所有数据属性的每个循环
- javascript – jQuery:删除前n个元素后的所有元素?
- javascript – PHP – 检索与单选按钮对应的所有数据
- javascript – ReactJs查找绑定到元素的所有事件
javascript – 查找单个元素的所有数据属性(js查找元素的基本方法)
HTML
<div data-foo="bar"></div>
JavaScript的
$("div").data(); //returns {foo:bar} good :) $("div").attr("data-hello","world"); $("div").data() //returns {foo:bar} no good :( $("div[data-hello]"); //returns the div,all good :) $("div").data("find","me"); $("div[data-find]"); //returns nothing,very bad
希望这能解释
解决方法
var $in = $('input'),input = $in[0],//here input is a dom element reference dataMap = input.dataset; //if dataset is not supported if (typeof dataMap == 'undefined') { dataMap = {}; $.each(input.attributes,function (key,attr) { var match = attr.name.match(/^data-(.+)/); if (match) { dataMap[match[0]] = attr.value; } }) } $.each(dataMap,value) { console.log(key,value) })
演示:Fiddle
javascript – jQuery所有数据属性的每个循环
我试图在动画后重置数据属性,并且在应用answer 2 of this post的技术时遇到了一些麻烦.
不知道我在这里缺少什么.从理论上讲,对于每个数据属性等都是可行的.
更新:
值得一提的是数据键都不同.例如. data-1 =“abc”,data-2 =“abc”等,因此需要一个简单查找数据属性的for循环.
HTML
var total = 0;
$.each($('*').data(), function(key, value) {
if (key){
var thiis = $(this);
total += key;
thiis.removeData();
thiis.data(total, value);
}
});
解决方法:
热潮,明白了.该脚本有很多开销,因此在用户将等待的实例中运行它不是一个选项,IMO.您可以使用特异性而不是*选择器来改进它.
JavaScript(jQuery):
var counter = 1; // not necessary for your implementation, using it to adjust numeric data keys
$('*').each(function(){ // query all selectors and run through a loop
var thiis = $(this),
dataAttr = thiis.data(),
i;
if (dataAttr) { // if the element has data (regardless of attribute)
var newAttrs = []; // for the element's new data values
$.each(dataAttr, function(key, value) { // loop through each data object
var newKey = key + counter, // calculate new data key
newAttr = [newKey, value]; // push the new data set
newAttrs.push(newAttr); // push to elements new attributes array
thiis
.removeData(key) // remove the data
.removeAttr('data-' + key); // remvoe the attribute (unnecessary)
});
for (i = 0; i < newAttrs.length; i++) { // for each new attribute
thiis.data(newAttrs[i][0], newAttrs[i][1]); // add the data
thiis.attr('data-' + newAttrs[i][0], newAttrs[i][1]); // add the attribute (unnecessary)
}
}
});
javascript – jQuery:删除前n个元素后的所有元素?
我有一些接近这个:
<div>
<a><img /></a>
<a><img /></a>
<a><img /></a>
<a><img /></a>
<a><img /></a>
<a><img /></a>
</div>
我不知道有多少< a>< img />< / a>将生成(我从API获取它们),我想删除前三个(n)< a>< img />< / a>之后的所有元素.我怎么能在jQuery中做到这一点?
解决方法:
试试这个.
$(".batman-pictures a:nth-child(3)").nextAll().remove();
javascript – PHP – 检索与单选按钮对应的所有数据
我正在使用PHP,并且没有经验.我在一个表中显示数据,每个行的开头都有一个单选按钮.我想检索与我检查的单选按钮对应的行中存在的所有数据.
这是我到目前为止所做的事情:
<form name="test" method="POST">
<table>
<tr>
<th></th>
<th>book_id</th>
<th>card no</th>
<th>fname</th>
<th>lname</th>
</tr>
<?PHP
$conn = MysqL_connect("localhost", "root", "");
if ($conn) {
MysqL_select_db("library");
} else {
echo 'no such database';
}
$query_test = "select book_id2,a.card_no,fname,lname from book_loans a, borrower b where a.card_no = b.card_no ";
$result = MysqL_query($query_test);
if ($result === FALSE) {
MysqL_error();
} else {
while ($rows = MysqL_fetch_assoc($result)) {
echo "<tr>";
echo "<td><input type='radio' name='test'></td>";
echo "<td>" .$rows['book_id2']. "</td>";
echo "<td>" .$rows['card_no']. "</td>";
echo "<td>" .$rows['fname']. "</td>";
echo "<td>" .$rows['lname']. "</td>";
echo "</tr>";
}
}
?>
<input type="submit" name="test_val" value="submit"/>
</table>
</form>
在这里,我想打印数据,即单击提交按钮时book_id,card_no,fname,lname:
<?PHP
if($_POST)
{
if(isset($_POST['test_val']))
{
// TO PRINT THE DATA CORRESPONDING TO THE RAdio BUTTON
}
}
?>
解决方法:
在每个< td>中添加隐藏的输入字段.行.例如:
echo "<td>".$rows['book_id2']."</td><input type='hidden' name ='book_id2' value='".$rows['book_id2']."' />";
我尝试编写JavaScript但在JQuery中这更容易.在结束之前添加这些脚本< / body>标签.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
var toggleInput = function(){
$('input[type=hidden]').prop('disabled', true);
var selection = $('input:checked').eq(0);
selection.parent().parent().find('input[type=hidden]').each(function(){
$(this).prop('disabled',false);
});
}
$(form).on('submit',toggleInput);
</script>
JQuery在这样操作DOM时使用了很多.它减少了很多可以在JavaScript中看到的重复.虽然如果只用JavaScript做一些事情更容易,那就去做吧!
在表单提交时,我们将禁用所有隐藏元素.然后我们找到有效的无线电盒,并激活对应于无线电盒的隐藏元素.
这是一个解决方案,可能需要进行调整. JavaScript和JQuery是你解决这个问题的朋友.
javascript – ReactJs查找绑定到元素的所有事件
我创建了一个事件,将一个字符串写入控制台,以测试它是否会在我单击该元素时运行,但它没有!相反,原始应用程序事件被触发.
所以我想也许如果我可以列出这个元素的所有“合成事件”,我可以用el.dispatchEvent(事件)激活那个?
我希望我在这里有所作为,谢谢!
解决方法
尝试向document.body添加事件侦听器.然后,您可以通过检查event.target来确定是否单击了按钮(如果事件没有停止冒泡).
关于javascript – 查找单个元素的所有数据属性和js查找元素的基本方法的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于javascript – jQuery所有数据属性的每个循环、javascript – jQuery:删除前n个元素后的所有元素?、javascript – PHP – 检索与单选按钮对应的所有数据、javascript – ReactJs查找绑定到元素的所有事件的相关信息,请在本站寻找。
本文标签: