3

getElementsByTagNameによって返されるライブ NodeList は、要素のドキュメントの順序を保持することを知っています。

getElementsdByClassNamegetElementsByNameおよびquerySelectorAllメソッドに当てはまりますか?

これらのメソッドもドキュメントの順序を保持しますか?

DOM/HTML5 W3C 標準のリンクをいただければ幸いです。

4

2 に答える 2

2

はい。いずれもドキュメント順・ツリー順です。

  • getElementsByName( DOM Level-2-HTML ) は、NodeList
  • querySelectorAll( Selectors APINodeList ) は「ドキュメント順」を返します
  • getElementsByTagName( DOM ) を返しますHTMLCollection
  • getElementsByClassName( DOM ) を返しますHTMLCollection

HTMLCollectionsNodeListsは両方とも持つように指定されています

要素はツリー順にソートされます。

それらがindize経由でアクセスされるとき。NodeList がライブであるかどうかは実際には問題ではありません (もちろん、実際のドキュメントの順序は、静的な NodeList に保存されている順序とは対照的に変更される可能性があります)。

于 2013-04-11T14:29:09.573 に答える
2

いいえ、すべてが同じように機能するわけではありません。getElementsByTagNameメソッドのみがライブ コレクションを返します。

このgetElementsByTagNameメソッドは、NodeList要素のライブ コレクションであるオブジェクトを返します。

このquerySelectorAllメソッドはNodeList、ライブ コレクションではないオブジェクトを返します。

およびメソッドは、ライブ コレクションではないオブジェクトgetElemendsByClassNameを返します。getElementsByNameHTMLCollection

(別のドキュメントでは、 aまたは a のgetElemenetsByNameいずれかが指定されていることに注意してください。)HTMLCollectionNodeList

于 2013-04-11T13:38:30.147 に答える