- From: John Resig <jresig@mozilla.com>
- Date: Fri, 2 May 2008 15:08:27 -0700 (PDT)
- To: Adam van den Hoven <avandenhoven@cucbc.com>
- Cc: public-webapi@w3.org
> I think that there is a simple solution. Instead of starting from the > descendants of the current element unless the first clause is :scope > or $self (or what ever it would be), make the first clause refer to > the current element. > > document.getElementById("example").querySelectorAll(".foo span") // > selects spans when the current element has a class of foo > document.getElementById("example").querySelectorAll("div span") // > selects spans when the current element is a div element > > But what if you don't care what the current element is? > > document.getElementById("example").querySelectorAll("* span") // > selects spans > document.getElementById("example").querySelectorAll("> span") // > Implies *>span ??? > > I think that this, while giving a different meaning when used from the > document element provides the least confusion. It also imposes a very > minor usability impact (one character, although on a large number of > uses). Also, providing an explicit descendant combinator in addition > to space might simplify the usability. > > This may also have advantages as a filter for the current element, > particularly when you're creating unobtrusive javascript. > > document.getElementById("example").querySelectorAll(".foo") > > Obviously that's only useful if you've selected the element first, > done stuff then apply the querySelector. I disagree with this. These pieces of functionality should be broken up into two separate methods - a querySelectorAll that contextually finds elements (and uses :scope to find child elements and the like) and something like filterSelectorAll which filters an element - or set of elements - based upon a selector. > This would also be much more valuable if it could be applied to a > nodelist (which would be similar to what jQuery does today). I absolutely agree - having DOMNodeList.querySelectorAll would be... amazing. With the addition of a filter method, as well, this API could be wonderfully useful. However, that's a completely different debate that will need to be explored later. --John
Received on Friday, 2 May 2008 22:09:07 UTC