我想创建一个选择器来查找具有以字符串开头的属性的元素。在这一点上,我假设这个选择器不存在。 我需要扩展选择器功能吗? Extending jQuery’s selector capabilities通过詹姆斯·帕多尔西
我需要表达类似于属性包含前缀选择器 [name|="value"] 的内容,但我需要匹配属性的名称而不是属性的值,而不是匹配“值”。
<tag data-plugin-option1="val1" data-plugin-option2="val2" />
我想以这样的语法结束:
$('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)')
关于javascript - 如何使用 jquery 查找包含与前缀匹配的数据-* 属性的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7602410/