我需要通過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