var list = querySelectorAll(selector);
var i;
for (i = 0; i < list.length; i++)
list[i].value = value;
Is just as readable as:
$(selector).val(value);
Except that the jQuery example requires you to be familiar with jQuery. The first, however, just requires you to be familiar with a for loop, which is a common construct in many languages. Being faster is just a happy by-product.
I, personally, am starting to use Dart instead, because it is a nice middleground between jQuery and raw DOM manipulation; it doesn't hide the details like jQuery does and it's still fast.
Ihe best argument I can see is with XMLHttpRequest, which is still a pain because it doesn't have a nice API.
To me this is quite readable, and it's really nothing special about Dart, it's just that the dart:html library uses real Dart collections rather than the very unfortunate DOM NodeList.
To go even further into jQuery territory, there are bugs requesting that queryAll() return an ElementList that has setters that effect every element in the list, so we could do this:
queryAll(selector).value = value;
I'm on the fence about that. It's short, but a little magical. I'm sure jQuery fans would like to have it though.
I, personally, am starting to use Dart instead, because it is a nice middleground between jQuery and raw DOM manipulation; it doesn't hide the details like jQuery does and it's still fast.
Ihe best argument I can see is with XMLHttpRequest, which is still a pain because it doesn't have a nice API.