javascript - 如何将元素与 jQuery 中的任何数据属性进行匹配?

标签 javascript jquery

我想选择带有 any data 的所有元素jQuery 中的属性。这可能吗?我知道如何在选择器的属性值中使用通配符,但我找不到在属性名称中使用通配符的方法。

我无法使用.data()因为它还匹配其他对象,例如窗口。我只想选择带有 data 的元素HTML 中的属性。

最佳答案

试试这个

var $result = $('*').filter(function(){
    return !$.isEmptyObject($(this).data());
});

或者如果您只是谈论属性:

var $result = $('*').filter(function(){

    var ret = false;

    $.each(this.attributes, function() {

        if(/^data-/.test(this.nodeName)){
           ret = true;
           return false; //to break the loop
        }
    });

    return ret;
});

也许不是最有效的方法,但是嘿

http://jsfiddle.net/M5bAY/

关于javascript - 如何将元素与 jQuery 中的任何数据属性进行匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21733855/

相关文章:

javascript - 如何在时间进度条中放置时间显示框

jquery - 如何更改列表项的背景图像

javascript - 为什么 webpack 别名不起作用?

javascript - 循环遍历为创建图表而返回的 JSON

javascript - 从数组中删除无效键,并以最高值进行排序和限制

javascript - 在 JavaScript(使用 jQuery)中,我想在文档就绪 block 内提示输入电子邮件

javascript - 如何在单击 html 链接时在弹出窗口中打开不同的内容

javascript - 我需要 "Autolisting"函数来编辑下拉列表

javascript - 具有私有(private)数据的类 (JavaScript)

javascript - dc.js/Crossfilter - 显示所选维度的分数?