如何使用jquery查找包含与前缀匹配的data- *属性的元素

我想创建一个选择器来查找具有以字符串开头的属性的元素。 此时,我假设此选择器不存在。 我是否需要扩展选择器function? James Padolsey 扩展了jQuery的选择器function

我需要表达类似于包含前缀选择器[name | =“value”]的内容,但不是匹配“value”,而是需要匹配属性的名称,而不是属性的值。

我想最终得到这样的语法: $('tag(:attr|="data-plugin")')它应该找到元素tag因为它至少有一个以data-plugin开头的元素

好吧,我想我正在以不同的方式阅读你的问题。

我读它的方式,你想创建一个自定义选择器,选择具有给定属性名称(或该名称的开头)的元素。

如果是这样,我认为您需要迭代每个元素的attributes集合。

演示: http //jsfiddle.net/GgmM7/

 $.extend($.expr[':'],{ attrNameStart: function(el,i,props) { var hasAttribute = false; $.each( el.attributes, function(i,attr) { if( attr.name.indexOf( props[3] ) !== -1 ) { hasAttribute = true; return false; // to halt the iteration } }); return hasAttribute; } }); 

 $('img:attrNameStart(data-plugin)')