如何在jQuery中匹配元素与任何数据属性?

时间:2014-02-12 16:34:11

标签: javascript jquery

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

我不能使用.data()因为它也匹配窗口等其他对象。我只想在HTML中选择具有data属性的元素。

1 个答案:

答案 0 :(得分:1)

试试这个

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/