News for hackers. Stuff that matters.
Re:From jQuery to JavaScript and back again by davecardwell on Friday February 08, 2013 @07:42AM (#5187536)
element.querySelector and .querySelectorAll [1] provide this functionality. Sizzle [2], the selector engine at the core of jQuery, uses it where available and works around some browser inconsistencies.

[1] http://caniuse.com/queryselector [2] http://sizzlejs.com/

Re:From jQuery to JavaScript and back again by masklinn on Friday February 08, 2013 @07:49AM (#5187566)
> element.querySelector and .querySelectorAll [1]

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.

Re:From jQuery to JavaScript and back again by jackmoore on Friday February 08, 2013 @09:59AM (#5188133)
Iterating a NodeList isn't so bad:

  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?
Re:From jQuery to JavaScript and back again by masklinn on Friday February 08, 2013 @10:22AM (#5188240)
The DOM WebIDL does not know what an array is. Though an IDL extension/annotation added some time ago allows inheriting IDL interfaces from core language objects or interfaces rather than the root object (http://dev.w3.org/2006/webapi/WebIDL/#ArrayClass), and DOM4 adds this annotation to NodeList http://dom.spec.whatwg.org/#interface-nodelist
Re:From jQuery to JavaScript and back again by ahoge on Friday February 08, 2013 @12:10PM (#5188868)
FWIW, they fixed that crap in Dart. All those array-like things are indeed just regular arrays.