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

标签 javascript jquery

我想创建一个选择器来查找具有以字符串开头的属性的元素。在这一点上,我假设这个选择器不存在。 我需要扩展选择器功能吗? 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/

相关文章:

javascript - document.executeCommand ('paste' ) 在 chrome 中不起作用

javascript - 为什么项目中不存在 ionic bundle js 文件?

javascript - 添加然后立即删除事件监听器的目的是什么?

javascript - 如何检测文档是否回到焦点?

jquery - Rails 找不到文件 jquery purr

javascript - 更改前置文件输入的位置

javascript - 用 jQuery 替换部分页面

javascript - 在某些第三方 Web 应用程序拥有的网页上运行 Javascript

jquery - 我对 jQuery 插件的第一个想法

javascript - 使用 .attr 更改 src 属性的开头?