查找任何属性等于某事物的元素

时间:2014-03-10 20:18:45

标签: jquery attributes

我需要的是:

 jQuery("a[anyAttributeName='something']");

我知道如何使用常规javascript ...

问题:

有没有办法只使用jQuery 选择器

例如: 你有元素[ href ='value'],b [ title ='value'],c [ src ='value']

我想通过使用1个jQuery选择器查找任何属性具有值的元素......

我不想做那样的事情                 $(“a [href ='value'],b [title ='value'],c [scr ='value']”) 因为我有1k个元素。

3 个答案:

答案 0 :(得分:3)

您可以使用过滤器执行您想要的操作:

$('a').filter(function(){
    for(var i = 0, l = this.attributes.length; i < l; i++)
        if(this.attributes[i].nodeValue === 'something')
            return this;
});

要将其用作选择器,您需要自己创建它:

jQuery.extend(jQuery.expr[':'], { 
    value: function(a, _, v) { 
        for(var i = 0, l = a.attributes.length; i < l; i++)
            if(a.attributes[i].nodeValue === v[3])
                return true;
        return false;
    }
}) 

然后像这样使用它:

$('div:value(test)');

http://jsfiddle.net/55BZ3/

答案 1 :(得分:0)

是的,你会使用这样的东西:

$("a[href='foo']");

Source

使用jQuery关键字代替$()也是可以接受的。

答案 2 :(得分:0)

答案是

$("[anyAttributeName='something']")