1. 程式人生 > >有關Html頁面節點的簡單理解

有關Html頁面節點的簡單理解

這是之前研究web前端的一點經驗,主要針對剛入門還沒怎麼研究的朋友。

因為我發現我在用js,css參與過網站開發專案後仍然沒有理解文字節點與普通節點的差別,所以記下來拿來分享一下。

先上結論:<div>之內有三個節點,包括兩個文字節點和一個<b>節點,就算文字節點裡面沒有任何文字,它也是依舊存在的~

下面是一個簡單的Html介面。

<html>
<body>
<div>這是div的第一個子節點ObjectText型別
     <b>這是div的第二個子節點內容</b>
     這是div的第三個子節點ObjectText型別
</div>
<br/>
<br/>


<script type="text/javascript">
//下面用js寫一段程式碼用來顯示我們想看到的資訊
var getTag=document.getElementsByTagName("div")   //獲取div節點
 
document.write("TagName:"+getTag[0].tagName+"<br/>")
document.write("nodeValue:"+getTag[0].nodeValue+"<br/>")
document.write("innerHTML:"+getTag[0].innerHTML+"這裡用write看不出,alert就能看到全部資訊"+"<br/>")
alert(getTag[0].innerHTML+"<br/>")
document.write("firstChild:"+getTag[0].firstChild+"<br/>")
document.write("firstChild.nodeValue:"+getTag[0].firstChild.nodeValue+"<br/>")
document.write("<br/>")
document.write("<br/>")
 
for(var i=0;i<getTag[0].childNodes.length;i++)    //遍歷子節點
{
  document.write("innerHTML:"+getTag[0].childNodes[i].innerHTML+"<br/>")
 
 document.write("nodeValue:"+getTag[0].childNodes[i].nodeValue+"<br/>")
 
  document.write("型別:"+getTag[0].childNodes[i]+"<br/><br/>")
 
}
document.write(getTag[0].childNodes[1].firstChild.nodeValue)
</script>
 
</body>
</html>


下面是執行結果:



TagName:DIV
nodeValue:null
innerHTML:這是div的第一個子節點ObjectText型別 這是div的第二個子節點內容 這是div的第三個子節點ObjectText型別 這裡用write看不出,alert就能看到全部資訊
firstChild[object Text]
firstChild.nodeValue這是div的第一個子節點ObjectText型別 


innerHTML:undefined
nodeValue:這是div的第一個子節點ObjectText型別 
型別:[object Text]

innerHTML:這是div的第二個子節點內容
nodeValue:null
型別:[object HTMLElement]

innerHTML:undefined
nodeValue: 這是div的第三個子節點ObjectText型別 
型別:[object Text]

這是div的第二個子節點內容

總之,我們需要明白的就是,<div>之內有三個節點,包括兩個文字節點和一個<b>節點,就算文字節點裡面沒有任何文字,它也是依舊存在的~