获取数据 = 值的所有元素
Get all elements with data = value
我的JavaScript类中有这个问题:
//===== i set this data record
jQuery(element).data("types", "row");
console.log(jQuery(element).data("types")); // writes "row" (the element is a div)
//==== into other method
//==== i want find all element with data-types = row
console.log(jQuery("[data-types='row']").length); // writes 0
jQuery("div").each(function(i,e){
console.log(i, jQuery(e).data(), jQuery(e).attr("id")); // writes object{type:row}
});
为什么用这个jQuery("[数据类型='row']")我找不到元素???
使用
jQuery.data()
将数据分配给元素时,它不会更新元素的 data-*
属性;因此不能使用属性选择器来选择元素。
数据属性在第一次数据属性被拉取时 已访问,然后不再访问或更改(所有数据值 然后存储在jQuery内部)。
为了选择这些元素,您可以将filter()
函数与自定义函数一起使用:
jQuery("div").filter(function() {
return $(this).data("types") === "row";
});
注意:如果您还使用 jQuery UI,您会发现:data(key)
选择器很有用。
data()
方法仅在最初从元素读取时使用 DOM。当您使用它来添加或更改元素的数据时,它会将数据放入其内部存储器中,而不会修改 DOM。所以 DOM 选择器不会找到它。从文档中:
data-属性在第一次访问数据属性时被拉取,然后不再被访问或改变(然后所有数据值都存储在jQuery内部)。
要查找所有元素,您可以使用.filter()
:
jQuery("div").filter(function() {
return $(this).data("types") == "row";
});
相关文章:
- 使用JQuery检索元素数据
- WebGL错误-错误:WebGL:bindBuffer:buffer已包含元素数据
- 如何在字符串中包含隐藏的 HTML 元素 - 数据表 - jquery
- 聚合物硒测试访问子元素数据
- 如何将动态元素数据传输到 struts2.
- j查询如何将值从输入字段设置为其他元素数据属性
- jQuery只会被点击元素数据
- 按方法动态更改元素数据
- 将父聚合物元素数据暴露给子元素
- 第一个jQuery插件-如何以正确的方式保存关联元素数据
- 将元素[数据]发布到服务器端的最佳方式
- Javascript隐藏对象元素数据值的子节点
- 获取AngularJS脚本中的HTML元素数据
- jQuery存储要在回调中使用的任意元素数据
- 查找父元素数据值并显示它
- 从元素数据中获取对象属性
- 插入HTML表格行"标题"基于动态可见元素数据属性的研究
- 查找具有与另一个元素数据属性匹配的id的元素的最佳方法
- 如何获得元素数据调试脚本
- Aurelia定制元素数据绑定