第一個(gè)div的子節(jié)點(diǎn)從哪里開始算起?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(biāo)題文檔</title>
</head>
<body>
<div>
? android
? <p>javascript</p> ? //第一個(gè)子節(jié)點(diǎn)是p嗎 ??
??
? <div>jQuery</div>
? <h5>PHP</h5>
</div>
<script type="text/javascript">
?var a=document.getElementsByTagName('div')[0].childNodes;
? // ?document.getElementsByTagName('div')[0].childNodes; 中的[0]指哪一個(gè)?
?for(var i=0;i<a.length;i++){
? ? ? ??
? ? ? ? ?document.write(a[i].nodeName+"</br>");
? ? ? ? ? document.write(a[i].nodeType+"</br>");
? ? ? ? ?document.write(a[i].nodeValue+"</br>");
? ? ?}
?//document.write(a);
?
?
</script>
</body>
</html>
2016-04-07
不論什么瀏覽器第一個(gè)子節(jié)點(diǎn)都不會(huì)是p,而是文本節(jié)點(diǎn)#text。只不過IE下節(jié)點(diǎn)的值是android,而谷歌等瀏覽器是?android 。注意第二個(gè)?android 前后有空格,原因就是請(qǐng)繼續(xù)看本章節(jié)。
document.getElementsByTagName('div')[0].childNodes;中的[0]表示獲取所有div節(jié)點(diǎn)中的第一個(gè)div節(jié)點(diǎn)。通過TagName獲取的節(jié)點(diǎn)是一個(gè)集合,類似數(shù)組,即使本例只有一個(gè)div,也必須通過[0]來獲取它。
2016-04-07
去掉空格,第一個(gè)節(jié)點(diǎn)是”android ”;在谷歌瀏覽器下輸出document.write(a[0].nodeName);是文本#text,不是P
2016-04-07
這個(gè)需要分瀏覽器,IE瀏覽器不會(huì)計(jì)算空格,但是谷歌瀏覽器會(huì)自動(dòng)把空格計(jì)算上,因此節(jié)點(diǎn)長度會(huì)有所增加
2016-04-07
div的第一個(gè)子節(jié)點(diǎn)應(yīng)該就是p。