如果* any *属性匹配,则为JQuery select元素

时间:2011-12-03 21:35:16

标签: jquery html jquery-selectors

我希望像$(".author")这样的选择器会选择一个元素,如果" author"是任何属性的值,而不仅仅是类。

E.g。 selector.text()应该给#Emily Ekins"对于以下每个页面:

<a href="http://reason.com/people/emily-ekins" rel="author">Emily Ekins</a>

<bloop href="http://reason.com/people/emily-ekins" id="author">Emily Ekins</a>

<blah href="http://reason.com/people/emily-ekins" class="author">Emily Ekins</a>

<tag href="http://reason.com/people/emily-ekins" random="author">Emily Ekins</a>

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:14)

var elements = document.getElementsByTagName("*");
for(var i=0;i<elements.length;i++){
    var element = elements[i];
    var attr = element.attributes;
    for(var j=0;j<attr.length;j++){
        if(attr[j].nodeValue == 'author'){
            element.style.backgroundColor='red';
        }
    }
}

Example

呼!这需要一些时间。但是这将检查 任何给定元素每个属性,如果任何属性为author,它将更改背景颜色变红了。

答案 1 :(得分:5)

希望这有帮助

$("[id='author'],[class='author'],[name='author'],[data-random='author']").text()

答案 2 :(得分:2)

我会使用@Web Developer的答案,但会补充一点,如果您需要多次选择它们,那么将选择保存为var会更有效:

var $target = $("[id='author'],[class='author'],[name='author']");

$target.text();

以下是有关属性选择器的一些文档:

http://api.jquery.com/category/selectors/

http://www.w3.org/TR/css3-selectors/#attribute-selectors

https://github.com/jquery/sizzle/wiki/Sizzle-Home(jQuery使用Sizzle)