我正在尝试实现一个jQuery选择器,它选择具有data-xy- *属性的所有元素。如果我们知道完整的数据属性,我知道如何选择元素:
$("[data-xy-a]")
会为我提供所有具有数据属性data-xy-a
我的问题是该元素可以具有任何值而不是a
。我想要这样的东西:
$("[data-xy-*]")
答案 0 :(得分:0)
没有这个选择器(据我所知)但你可以自己过滤它们......
$.expr[':'].dataStartsWith = function (elem, index, not) {
var data = $(elem).data();
return Object.keys(data).some(function (key) {
return key.indexOf(not[3]) === 0;
});
};
$(':dataStartsWith("xy")');
请记住,数据属性名称会转换为数据集中的camelcase,以匹配data-xy-z-*
您需要使用$(':dataStartsWith("xyZ")');