Javascript 获取数据=值的所有元素

Javascript 获取数据=值的所有元素,javascript,jquery,jquery-selectors,custom-data-attribute,Javascript,Jquery,Jquery Selectors,Custom Data Attribute,我的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 = r

我的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(“[data types='row']”)我找不到元素???

当您使用它将数据分配给元素时,不会更新元素的
数据-*
属性;因此,不能使用属性选择器选择元素

数据属性在第一次创建数据属性时被拉入 已访问,然后不再访问或更改(所有数据值 然后存储在jQuery中)

为了选择这些元素,您可以将函数与自定义函数一起使用:

jQuery("div").filter(function() {
    return $(this).data("types") === "row";
});


注意:如果您也使用jQuery UI,您会发现选择器很有用。

当您将数据分配给元素时,使用它不会更新元素的
数据-*
属性;因此,不能使用属性选择器选择元素

数据属性在第一次创建数据属性时被拉入 已访问,然后不再访问或更改(所有数据值 然后存储在jQuery中)

为了选择这些元素,您可以将函数与自定义函数一起使用:

jQuery("div").filter(function() {
    return $(this).data("types") === "row";
});

注意:如果您也使用jQuery UI,您会发现选择器很有用。

方法仅在最初读取元素时使用DOM。当您使用它添加或更改元素的数据时,它会将数据放入其内部内存中,而不会修改DOM。所以DOM选择器找不到它。从:

数据属性在第一次访问数据属性时被拉入,然后不再被访问或修改(所有数据值都存储在jQuery内部)

要查找所有元素,可以使用
.filter()

data()
方法仅在最初读取元素时使用DOM。当您使用它添加或更改元素的数据时,它会将数据放入其内部内存中,而不会修改DOM。所以DOM选择器找不到它。从:

数据属性在第一次访问数据属性时被拉入,然后不再被访问或修改(所有数据值都存储在jQuery内部)

要查找所有元素,可以使用
.filter()