Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有data-*属性的jQuery选择器_Javascript_Jquery_Html_Html5 Data - Fatal编程技术网

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

Javascript 带有data-*属性的jQuery选择器,javascript,jquery,html,html5-data,Javascript,Jquery,Html,Html5 Data,我试图实现一个jQuery选择器,它选择所有具有数据xy-*属性的元素。如果我们知道完整数据属性,我知道如何选择元素: $[data-xy-a]将提供具有数据属性data-xy-a的所有元素 我的问题是元素可以有任何值,而不是a。我想要像这样的东西: $("[data-xy-*]") 据我所知,没有选择器,但你可以自己过滤掉 $.expr[':'].dataStartsWith = function (elem, index, not) { var data = $(elem).data(

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

$[data-xy-a]将提供具有数据属性data-xy-a的所有元素

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

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

据我所知,没有选择器,但你可以自己过滤掉

$.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")');

请记住,数据属性名称在dataset中转换为camelcase,因此要匹配data-xy-z-*您需要使用$':dataStartsWithxyZ'

可能的重复项我可以获得具有.data的数据属性列表,但我需要具有数据xy-*属性的元素。是的,我可以遍历.data列表并检查以xy开头的键,但是还有其他简单的解决方案吗?@DvS:因为我不是根据值来选择的。我正在寻找一个自定义键选择,就像我必须使用自己的函数作为选择器一样