liorean wrote:
Isn't this approach potentially much more resource intensive though?
Not for the typical browser workload, which is to match a node to a whole bunch of rules.... So I guess it depends on whether querySelector reuses the existing selector matching code.
The Selectors spec doesn't really deal with the DOM though.
But it does. It's all in terms of a tree and stuff.. The question is whether the "tree" for a node is the tree rooted by its ownerDocument or the connected tree containing the node.
I should note that interoperability for detached subtrees is pretty poor. For example, consider the following:
javascript:var n = document.createElement("div");n.appendChild(document.createElement("span"));alert(n.querySelector(":root span"));
Webkit nightly returns null. IE throws (no :root support). Gecko prototype implementation returns the span, since :root will match any node with no ancestors.
So I do think that the spec needs a lot more detail here... -Boris
