Simon Willison’s Weblog

getElementsBySelector()

Inspired by Andy, I decided to have a crack at something I’ve been thinking about trying for a long time. document.getElementsBySelector is a javascript function which takes a standard CSS style selector and returns an array of elements objects from the document that match that selector. For example:

document.getElementsBySelector('div#main p a.external')

This will return an array containing all of the links that have ’external’ in their class attribute and are contained inside a paragraph which is itself contained inside a div with its id attribute set to ’main’.

So far I’ve only tested it on Phoenix but it seems to work as intended for the small number of test cases I’ve tried. If you spot any bugs please let me know. I’m about to fire up a Windows PC and see how much it breaks in IE...

Update: I’ve put together a demo page showing the function in action. It works fine in IE 6.

This is getElementsBySelector() by Simon Willison, posted on 25th March 2003.

Tagged , ,

Next: Retrieving all DOM descendants

Previous: Date-centric vs Entry-centric

Previously hosted at http://simon.incutio.com/archive/2003/03/25/getElementsBySelector