59

複数のページで動作するjsコードを作成しようとしています。querySelectorAll() を使用して、DOM から要素を取得しようとしています。

要素を並べ替える必要があります。そのために、xPath またはセレクターを使用できます (セレクターを使用することをお勧めしますが、xPath も問題ありません)。問題は
、querySelectorAll() によって返される NodeList 内の要素が、タグが HTML に表示される順序に反して並べられているかどうかです。

注: タグを追加したい: querySelectorAll

4

1 に答える 1

74

返されるノード リストは順序付けられています。簡単なテストでそれが証明されました:

document.querySelectorAll("body, head")[0]; //Returned [object HTMLHeadElement]

明らかに、<head>タグ<body>は HTML ドキュメントの前に表示されます。NodeList の最初の要素も<head>要素です。たとえセレクターがbody`head.

http://www.w3.org/TR/selectors-api/#queryselectorallから:

NodeSelector インターフェイスのquerySelectorAll()メソッドは、呼び出されたときに、ノードのサブツリー内の一致するすべての Element ノードをドキュメント順に含む NodeList を返す必要があります。そのようなノードがない場合、メソッドは空の NodeList を返す必要があります。

于 2011-11-20T18:47:45.343 に答える