我需要通过querySelectorAll
函数获取元素的帮助。 当我打电话给它时,我传递一个字符串作为这个函数的参数,多个元素之间用逗号分隔,它将带有节点return
me NodeList
,但它们排序为first-depth traversal pre-order
(应该像它们位于document body
中那样)。当我想调用method
返回保存在Array
中的document
中更多元素的值时,我遇到问题。所以我把这个JavaScript querySelectorAll元素顺序
$('#textinput, #someotherinput').value();
其中具有id #someotherinput
元件定位元素#textinput
以上,但querySelectorAll
后的结果是这样的:
[input#someotherinput, input#textinput]
0: input#someotherinput
1: input#textinput
length: 2
__proto__: NodeList
,我需要对它们进行排序方式,我没有当我叫$()
,因为当我需要使用值时,我只看到$('#textinput, #someotherinput')
,并且在document body
中找到元素的顺序并且使用带有这些元素的值的返回数组时,我不知道第一个(第0个)元素中保存的是什么,阵列中的位置。是的,我知道querySelectorAll
是traversal pre-order
函数。那么,如何对我的订单进行排序(尽可能简单)?
如果一个选择器找到多个元素,或者多个选择器找到一个元素,该怎么办?那些如何排序? – Guffa
如果多个选择器找到一个元素,则顺序无关紧要。我认为这将按排序的属性排序。因此''input type =“text”id =“idselector”class =“classSelector”/>'我调用'$('。classSelector,#idselector')'querySelectorAll'的结果是nodeList,其中包含'input#idselector '在第0个位置 – Peter
节点按文档顺序返回。该算法是下降文档树,根据选择器测试每个节点。如果节点匹配其中的任何节点,则将其添加到列表中。选择器实际上是“*选择具有textinput或其他输入ID的元素”,因此选择器的顺序不会影响返回节点的顺序。哦,并且一个NodeList不是一个数组。 – RobG