ホームページ > ウェブフロントエンド > jsチュートリアル > IEのchildNodeとFireFox_javascriptスキルの違い

IEのchildNodeとFireFox_javascriptスキルの違い

WBOY
リリース: 2016-05-16 18:00:46
オリジナル
1143 人が閲覧しました

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("コードをよくコメントする必要があります!");
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート