带有data- *属性的jQuery选择器

时间:2014-09-17 19:23:38

标签: javascript jquery html5 html5-data

我正在尝试实现一个jQuery选择器,它选择具有data-xy- *属性的所有元素。如果我们知道完整的数据属性,我知道如何选择元素:

$("[data-xy-a]")会为我提供所有具有数据属性data-xy-a

的元素

我的问题是该元素可以具有任何值而不是a。我想要这样的东西:

$("[data-xy-*]")

1 个答案:

答案 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")');