Javascript では、誰もが getElementsByTagName と childNodes を使用してノードを走査しようとしたことがあると思います。ただし、getElementsByTagName は、複雑な DOM 構造の走査には childNodes を使用するよりも明らかに優れていません。走査が必要な場合は、childNodes を最初に使用することをお勧めします。
しかし、残念ながら、IE と FireFox では、 childNode は少し異なります:
function view(){
var childs2=$('SecondDiv').childNodes ;
alert("FirstDiv の長さ: "children1.length"--SecondDiv の長さ:"children2.length);
var $=function(id)
{ return document.getElementById (id) ; }
!-- ノード間にスペースと改行を残す最初のトラバーサル オブジェクト -->
1
;2
実際のアプリケーションでは、Firefox が子ノードを走査するときに、for ループに
if(childNode.nodeName=="#text") continue;
または nodeType == 1 を追加するとよいでしょう。
このようにして、不要な操作がスキップされ、プログラムがより効率的に実行されます。
添付ファイル:
Node.ELEMENT_NODE == 1
Node.ATTRIBUTE_NODE == 2
Node.TEXT_NODE == 3
Node.CDATA_SECTION_NODE == 4
Node.ENTITY_REFERENCE_NODE == 5
Node.ENTITY_NODE == 6
Node.PROCESSING_INSTRUCTION_NODE == 7
Node.COMMENT_NODE == 8
Node.DOCUMENT_NODE == 9
Node.DOCUMENT_TYPE_NODE == 10
ノード。 DOCUMENT_FRAGMENT_NODE == 11
Node.NOTATION_NODE == 12
var node = document.documentElement.firstChild;
if(node.nodeType != Node.COMMENT_NODE)
alert("コードをよくコメントする必要があります!");