DOM 标准中的定义似乎几乎完全相同,我不明白其中的区别。
queryAll
和有什么区别querySelectorAll
。
DOM标准的评估逻辑如下,但我不够聪明,无法理解。
query
&queryAll
要将相对选择器字符串 relativeSelectors 与集合匹配,请运行以下步骤:
让 s 是从 relativeSelectors 中针对 set 解析相对选择器的结果。[选择器]
如果 s 失败,则抛出 JavaScript TypeError。
使用 :scope 元素集返回评估选择器 s 的结果。[选择器]
query(relativeSelectors) 方法必须返回运行匹配相对选择器字符串relativeSelectors 与由上下文对象组成的集合的第一个结果,如果结果是空列表,则返回null。
queryAll(relativeSelectors) 方法必须返回一个 Elements 数组,该数组使用运行结果将相对选择器字符串 relativeSelectors 与由上下文对象组成的集合相匹配。
querySelector
&querySelectorAll
要将选择器字符串选择器与节点进行范围匹配,请运行以下步骤:
让 s 成为解析选择器选择器的结果。[选择器]
如果 s 失败,则抛出 JavaScript TypeError。
使用作用域根节点和作用域方法作用域过滤,返回针对节点根计算选择器 s 的结果。[选择器]。
querySelector(selectors) 方法必须返回针对上下文对象运行范围匹配选择器字符串选择器的第一个结果,如果结果为空列表,则返回 null。
querySelectorAll(selectors) 方法必须返回针对上下文对象运行范围匹配选择器字符串选择器的静态结果。