IE8 is Gonna Rock

So maybe my title was a bit overdramatic. But in the announcement of IE8's features, one jumped out at me as a potentially game-changing feature.

http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/DevelopersNew.htm#dom

Yes.

That's right.

"Selectors are a query language for searching and “selecting” tags (elements) within a webpage. They are most commonly seen in CSS to “select” a group of elements to which certain properties will be applied:

Selector{  
   property: value;
   property2: value;
}

In Internet Explorer 7 there is no way of "executing" the selector independently of CSS. Internet Explorer 8’s implementation of the Selectors API is based on the W3C Working Draft: http://www.w3.org/TR/selectors-api/"

Yes. You read that correctly. To the extent of IE8's support for CSS2.1 (which should be relatively complete, according to their announcement), it will be possible to use the standards-compliant querySelector and querySelectorAll in IE to get collections of elements at native speed. This means fast class-name lookup, fast attribute lookup, and much much more.

Here's a lame example of its use from an IE8 whitepaper:

function doValidation ()  {  
// Retrieve the required elements by using Selectors 
   // Selects all the form fields with 'required' classes 
var reqs = document.querySelectorAll(".required");  
   // Set the flag to false by default 
var missingRequiredField = false;  
// Validate that the form data is not empty 
for (var i = 0; i < reqs.length; i++)  {  
if (reqs[i].value == "")  
         missingRequiredField = true; 
   }

Yep. It is what it looks like. Finally, the days of slow IE selectors may be coming to an end. And finally, one where MS is ahead of the curve (in fact, a lot of the IE8 improvements are pretty neat and forward-looking; I recommend taking a look at it)