views:

258

answers:

4

Using Prototype JS library, I want to select all child link elements (A tags) regardless of whether their parent is: H1, H2, H3, H4, or H5 (etc) with a simple CSS Selector Rule (as opposed to further JS, like looping etc).

So the simple, but long way, to do this is:

$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

I guess I'm looking for a wild-card property, like h*, that doesn't exist.

Maybe the above example is the way to go, but I'm hoping there is a simpler, more concise and efficient way to do this.

Tips appreciated.

+1  A: 

http://docs.jquery.com/Selectors/header says:

:header Matches all elements that are headers, like h1, h2, h3 and so on.

Adds a background and text color to all the headers on the page.

$(":header").css({ background:'#CCC', color:'blue' });
Tony Heflin
You missed the part where the OP asks "Using Prototype JS library...".
Crescent Fresh
+1  A: 

Using jQuery:

$(":header a")
Josh Stodola
+2  A: 

As per Fabien Ménager comment to the original question, it looks like there isn't a simple CSS Selector I can use other than what I have already.

$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

While there are other options if I want to be programmatic about it, or empty JQuery (which isn't an option for me) I am specifically looking for a CSS rule.

Thank you to everyone who tried to help.

michael
+1  A: 

got an answer to this from the prototype devs. these are best and only solutions, for now at least:

$$('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a, h6 > a')
$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

However, the next release of Prototype will let you choose a selector engine and will default to Sizzle. The :header pseudo-selector is actually part of Sizzle so will be available in future versions of prototype (as long as you choose sizzle as your selector engine). I guess it was not previously included as it is not part of any specification.

seengee