John Resig wrote:
I presume what you want instead is that element-rooted queries are
handled by matching such that each simple selector (CSS2 definition)
or sequence of simple selectors (css3-selectors definition, and I
*still* object to changing the meaning of existing terms) must match
an element that is or is a descendant of the specified element (the
root of the query).
Or do you want to eliminate "is or" in my previous paragraph, to
exclude the query root? Or something else?
I would exclude "is or" - only descendant elements, in this case. For example:
<div><div id="test"><div><div id="inner"></div></div></div></div>
<script>
// matches <div id="inner"></div>
document.getElementById("test").querySelectorAll("div div").length == 1
</script>
But that would mean that .querySelectorAll(":root div") would never
match anything since :root (or :scope) could only match the element
itself, which of course isn't a descendant.
/ Jonas