Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IE9 equivalent of querySelectorAll

I haven't had any problems in FF or Chrome, but IE9 chucks an error on this method. I thought I would be able to use it, due to it having been shown to be supported here:

http://www.quirksmode.org/dom/w3c_core.html

However, that appears to not be the case in practice. That being said, what can I use in its place?

EDIT: Here's the exact line it fails on:

var maximize_buttons = document.querySelectorAll(".maximize");

That is the first time I attempt to use querySelectorAll(). The browser version number is 9.0.8112.16421

EDIT (again): I've verified this error on two separate computers. However, there's one thing in common that they share - they're both running Windows 7 on VMware. Is that relevant?

Browser mode was IE9, but document mode was set to quirks by default. Changing it to Internet Explorer 9 standards fixed the problem, but if quirks is default, I still need to make it work for that.

like image 442
Fibericon Avatar asked Nov 01 '12 05:11

Fibericon


People also ask

Is getElementsByClassName faster than querySelectorAll?

Specifically, getElementById() and getElementsByClassName() are more than twice as fast as querySelector() and querySelectorAll() .

What is querySelectorAll?

The querySelectorAll() method returns all elements that matches a CSS selector(s). The querySelectorAll() method returns a NodeList. The querySelectorAll() method throws a SYNTAX_ERR exception if the selector(s) is invalid.

What is the type of querySelectorAll?

The Element method querySelectorAll() returns a static (not live) NodeList representing a list of the document's elements that match the specified group of selectors.

How does the querySelector () method differ from querySelectorAll ()?

Differences: As seen above, querySelector() methodcan only be used to access a single element while querySelectorAll() method can be used to access all elements which match with a specified CSS selector. To return all matches, querySelectorAll has to be used, while to return a single match, querySelector is used.


1 Answers

You need to use the html5 doctype for IE9 to work with the querySelectorAll() javascript method. The doctype looks like this and should be placed as the first line on all the pages in your site.

<!DOCTYPE html>
like image 79
macguru2000 Avatar answered Oct 31 '22 09:10

macguru2000