querySelectorAll() を使用します。メソッドによって返される結果は順序付けられていますか? 質問する

querySelectorAll() を使用します。メソッドによって返される結果は順序付けられていますか? 質問する

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

要素を順序付ける必要があります。そのためには、xPath またはセレクターを使用します (セレクターを使用する方が望ましいですが、xPath も使用できます)。問題は、
querySelectorAll() によって返される NodeList 内の要素が、HTML 内のタグの順序とは逆に順序付けられているかどうかです。

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

ベストアンサー1

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

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

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

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

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

おすすめ記事