javascriptのノードの概念

7480 ワード

1 <html>
2             <head>
3                 <title></title>
4             </head>
5             <body>
6 
7             </body>
8         </html>
文書ノードは各ドキュメントのルートノードです.
私たちのページでは、ドキュメントノードはサブノードである<>.ドキュメント要素と呼ばれています.XMLでは、事前に定義された要素がありませんので、どの要素もドキュメント要素になり得るです.
javsccriptのノードタイプはすべてNodeタイプから継承されていますので、すべてのノードは同じ基本的な属性と方法を持っています.
ノードが一つずつあります.ノードのタイプを示すために使います.NODE.ELLENT(u)NO.1 NO.ATTRIBUTE_NO.2 NO.TEXT_NO.3 NODE.C.DATA_SECTIONNO.4 NO.ENTITY_REFERENCE_NO.5 NO.ENTITY_NO.6 NO.PROCESSING_INSTRUCTIONNO.7 NODE.C.OMMENT_NO.8 NO.DOCUMENT_NO.9 NODE.DOCUMENT_TYPE_NO.10 NO.DOCUMENT_FRAGMENTNO.11 NO.NOTATION_NO.12
window.onload = function () {
            var oDiv = document.getElementById("guoDiv");
            if (oDiv.nodeType == Node.ELEMENT_NODE) {// IE    
                alert("     ");
            }
            else
                alert("    ");
        }
上のコードはIEでエラーが発生します.IEはNODEのタイプの構造関数を公開していません.ブラウザの互換性を確保するために、このように書き込みます.
1         window.onload = function () {
2             var oDiv = document.getElementById("guoDiv");
3             if (oDiv.nodeType == 1) {// IE    
4                 alert("     ");
5             }
6             else
7                 alert("    ");
8         }
ノードの具体的な情報を知るためには、nodeNameとnodeValueの2つの属性が使用されます.
1 window.onload = function () {
2             var oDiv = document.getElementById("guoDiv");
3             alert(oDiv.nodeName); //DIV
4             alert(oDiv.nodeValue);//null
5         }
各ノードには一つのノードノード属性があり、一つのNodeListオブジェクトが保存されています.NodeListは、順序付けられたノードのセットを保存するための配列オブジェクトです.位置を通してこれらのノードにアクセスできます.NodeListはArayインスタンスではないことに注意してください.length属性を持っていますが、一方の括弧を通してNodeList値にアクセスすることもできます.NodeListオブジェクトのユニークな点は、NodeListオブジェクトです.実際にはDOM構造の動的な調査結果に基づいていますので、DOM構造の変化はModeListオブジェクトに自動的に反映されます.だから、NodeListは生命があり、呼吸があります.私たちが初めて彼らの属性を訪問した時に撮ったスナップショットではありません.
1 window.onload = function () {
2             var oDiv = document.getElementById("divFather");            
3             var firstChild = oDiv.childNodes[1];            
4             alert(firstChild.innerHTML);//1
5         }
NodeListは配列ではないので、配列の方法は使えません.次にNodeListを配列に変換します.
 1 function converToArray(nodes) {
 2             var array = null;
 3             try {
 4                 array = Array.prototype.slice.call(nodes, 0); //   IE
 5             }
 6             catch (e) {
 7                 array = [];
 8                 for (var i = 0, len = nodes.length; i < len; i++) {
 9                     array.push(nodes[i]);
10                 }
11             }
12             return array; 
13         }