IE和FireFox中的childNodes區(qū)別!!
2012/3/19 9:20:18
  Javascript中,相信大家都試過用getElementsByTagName和childNodes來實(shí)現(xiàn)對節(jié)點(diǎn)的遍歷。但是 getElementsByTagName對復(fù)雜的DOM結(jié)構(gòu)遍歷明顯不如用childNodes,因?yàn)閏hildNodes能更好的處理DOM的層次結(jié)構(gòu),建議在需要進(jìn)行了遍歷時(shí)首先使用childNodes!!
  但是不幸的是,在IE和FireFox中childNodes有點(diǎn)細(xì)微的差別: 
<head> <script type="text/javascript">
    function view(){
    var childs1=$('FirstDiv').childNodes;
    var childs2=$('SecondDiv').childNodes; 
    alert("length of FirstDiv: "+childs1.length+"--length of SecondDiv: "+childs2.length);
    }
    var $=function(id)
    { return document.getElementById(id); }
    </script>
</head>
<html >
<body onload="view();">

  <!--第一個(gè)遍歷對象,節(jié)點(diǎn)之間留有空格和回車-->
    <div id="FirstDiv">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    </div>

    <!--第二個(gè)遍歷對象,除注釋外,節(jié)點(diǎn)間無空格回車-->
    <div id="SecondDiv"><div>first</div><div>second</div><div>third</div></div>
</html>
    用IE和Firefox運(yùn)行會(huì)有兩個(gè)不同的結(jié)果:IE的結(jié)果是3:3;而Firefox則是7:3。怎么會(huì)有這種情況呢?
在結(jié)構(gòu)上,對象1和對象2不同的是對象1的子節(jié)點(diǎn)間有回車或者空格,而對象2則是一行寫到尾。大家都應(yīng)該想到了吧,IE是將一個(gè)完整標(biāo)簽作為一個(gè)節(jié)點(diǎn)。而 Firefox除了上述的的情況外,也把一個(gè)標(biāo)簽的結(jié)束符“>”到下一個(gè)標(biāo)簽的起始符“<”之間的內(nèi)容(除注釋外,包括任何的文字、空格、回車、制表符)也算是一個(gè)節(jié)點(diǎn)了。而且這種節(jié)點(diǎn)也有它們自己獨(dú)特的屬性和值--nodeName="#text"。

在實(shí)際運(yùn)用中,F(xiàn)irefox在遍歷子節(jié)點(diǎn)時(shí),在for循環(huán)里不妨加上:
if(childNode.nodeName=="#text") continue;
或者nodeType == 1。
這樣,便跳過不需要的操作,使程序運(yùn)行的更有效率。
附:  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 Node.DOCUMENT_FRAGMENT_NODE == 11 Node.NOTATION_NODE == 12 

var node = document.documentElement.firstChild;
if(node.nodeType != Node.COMMENT_NODE)
alert("You should comment your code well!");

返回列表
返回首頁 主站蜘蛛池模板: 午夜dj在线观看免费视频| 在线免费观看欧美大片| 久草福利资源在线观看| 波多野结衣先锋影音| 午夜视频在线免费| 青青草91久久国产频道| 国产精品jizz在线观看直播| 99久久精品免费观看国产| 性色AV无码中文AV有码VR| 久久亚洲AV成人无码| 最近中文字幕网2019| 亚洲日韩国产成网在线观看| 男女边摸边吃奶边做免费观看| 四虎成年永久免费网站| 高清伦理电影在线看| 国产精品入口麻豆免费| 99RE66在线观看精品免费| 婷婷人人爽人人爽人人片| 中文字幕第233页| 日本护士在线视频xxxx免费 | 好紧好大好爽14p| 中文字幕在线资源| 日本边添边摸边做边爱边| 亚洲av日韩综合一区在线观看| 污污视频在线免费观看| 免费一区二区视频| 精品国偷自产在线视频| 国产一区二区三区不卡在线看 | 扒开老师的蕾丝内裤漫画| 久久国产精品久久精品国产| 最近免费中文字幕中文高清| 亚洲国产精品久久久久婷婷软件 | 第272章推倒孕妇秦| 午夜精品久久久久久久99| 老师您的兔子好软水好多动漫视频| 国产在线观看麻豆91精品免费 | 香蕉大视频在线播放持久| 国产成人精品综合在线观看| free性欧美另类高清| 国产精品毛片大码女人| 91酒店疯狂输出女神范范|