DOMノード——JSまとめ


DOMノード——JSまとめ
ノードは、属性ノード、エレメントノード、テキストノードの3つを含む.
HTML内容:
<div id = 'box' style = "color:red">  Div<em>  </em>  </div>
JavaScriptの内容:
(一)属性ノード
1.親ノード:
		window.onload = function(){
			var box = document.getElementById('box');		//      , '[object HTMLDivElement]'
			alert(box);
			alert(box.tagName);						        //      , ‘DIV ’
			alert(box.innerHTML);						    //           , ‘  Div’
			alert(box.id);							        //        , :‘box’
			alert(box.getAttribut('id'));					//  ,        , :‘box’
		                                                    //  :   
			alert(box.getAttribut('style'));				//      , :'color:red'
			
			alert(box.className);						    //  class    
		    // HTML      、  ,JS      HTML  ,         
			box.innerHTML = '  <strong>JS</strong>';	    // '  Div'  ,   '  JS'
		}
2.サブノード:
        //     :
            //     :1
            //     :2
            //     :3
		window.onload = function(){
			var box = document.getElementById('box');
		    //      ,   tagName
		    //alert(box.nodeName);					        // "DIV"
		    //alert(box.childNodes.length);			        // "3 " ,     
		    //       3    :  Div<em>  </em>  </div>
		    //       :"  Div"  			        ——    
		    //       :"<em>  </em>"		        ——    
		    //       :"  "				        ——    
		
		    //      :
			alert(box.childNodes[0]);				        // "Object Text" ,        
			alert(box.childNodes[0].nodeType);		        // "3 ",   ,      
			
		    //           
		    //1)  '   '     
			alert(box.childNodes[0].nodeValue);		        // "  Div"
			alert(box.childNodes[1].nodeValue);		        // "Null"
			alert(box.childNodes[2].nodeValue);		        // "  "
			
		    //2)    '  '     
			alert(box.innerHTML);					        // "  Div<em>  </em>  </div>"
			alert(box.childNodes[1].innerHTML);		        // "  "
		    //  "<em>  </em>"      ,nodeName            
			alert(box.childNodes[1].nodeName);		        // "EM"
				
		}
(二)要素ノード、テキストノード
		window.onload = function () {
			var box = document.getElementById('box');
			for ( var i = 0; i<box.childNodes.length; i++){	        //              
				if (box.childNodes[i].nodeType ===1 ){				// :    
					alert(box.childNodes[i].innerHTML);				//          
				}else if (box.childNodes[i].nodeType ===3 ){		// :    
					alert(box.childNodes[i].nodeValue);				//          
				}
			}
		}
      実験をしているうちに、ノードが小さくないトラブルになっていることが分かりました.対応するノードを正確に見つけることは、動作の前提である.コンテンツが多い場合、ノードレベルも多くなります.レイヤーごとに検索すればいいです.