I want a selector like $(".author")
that will select an element if "author" is the value of any attribute, not just class.
E.g. selector.text()
should give "Emily Ekins" for each of the following pages:
<a href="http://reason.com/people/emily-ekins" rel="author">Emily Ekins</a>
or
<bloop href="http://reason.com/people/emily-ekins" id="author">Emily Ekins</a>
or
<blah href="http://reason.com/people/emily-ekins" class="author">Emily Ekins</a>
or
<tag href="http://reason.com/people/emily-ekins" random="author">Emily Ekins</a>
Is there any way to do this?
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
Whew! That took some time. But this will check every single attribute of any given element, and if any attribute is author
, it will change the background color to red.
Hope this helps
$("[id='author'],[class='author'],[name='author'],[data-random='author']").text()
I would use @Web Developer's answer, but will add that if you're going to need to select them multiple times, then it's more efficient to save the selection as a var
:
var $target = $("[id='author'],[class='author'],[name='author']");
$target.text();
Here's some documentation on attribute selectors:
http://api.jquery.com/category/selectors/
http://www.w3.org/TR/css3-selectors/#attribute-selectors
https://github.com/jquery/sizzle/wiki/Sizzle-Home (jQuery uses Sizzle)