[1] http://caniuse.com/queryselector [2] http://sizzlejs.com/
[1] http://caniuse.com/queryselector [2] http://sizzlejs.com/
They provide a limited part of the selection function. Altering nodes, creating new nodes (and adding them to the DOM tree) and programmatic DOM tree traversals? Not so much, you get very clumsy and verbose APIs for that in the regular DOM. Same with DOM event handling, jQuery provides nice shortcuts for binding and delegation, the DOM... not so much (even if you limit yourself to IE9 and don't have to handle the garbage that is the oldIE event model)
Also, as usual with the fucking DOM, querySelectorAll returns a NodeList which means you can't trivially use higher-order iterators on it (you've got to use the "generics" version and hope it works correctly everywhere).
Fuck, that makes me angry again, the DOM is such a clusterfuck of an API.
Array.prototype.forEach.call(
document.querySelectorAll('a'), function(el){
console.log(el);
});
But, I agree with the point. If the NodeList isn't live, like it is for the other DOM querying methods, then what is the point in returning a NodeList instead of an array?