六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

获取兼容的DOM子节点

[复制链接]

升级  70.67%

50

主题

50

主题

50

主题

秀才

Rank: 2

积分
156
 楼主| 发表于 2012-12-22 21:32:18 | 显示全部楼层 |阅读模式
获取兼容的DOM子节点

<div class="postText"><div id="cnblogs_post_body">    浏览器对于DOM节点识别并非都是一致的,主要分为两个阵营,ie浏览器和非ie浏览器。(刚刚试了一下,ie9对DOM的识别好像和非ie一样了)。
    ie只把标签识别为节点,回车等文本符并不视为节点。而非ie把回车也视为一个节点。那怎么获取的的节点,在不同浏览器看来,都一样呢。看看下面的例子,大家就明白了。
<div class="cnblogs_code"><!DOCTYPE HTML><html><head><meta charset="utf-8"><title>获取兼容的子节点</title><meta name="Keywords" content=""><meta name="Description" content=""><style type="text/css">li{list-style:none;}.bc{border:1px blue solid;font-size:20px;margin:20px;}</style></head><body>    <ul id="all">        <li></li>        <li></li>        <li></li>        <li></li>        <li></li>    </ul><script type="text/javascript"><!--  /*检测dom在不同浏览器中的识别情况*/    var child=document.getElementById("all").childNodes;//获取ul下所有的节点,标签、注释、文本(包括回车)等都是节点。    document.write("<p class='bc'>"+child.length+"</p>");//节点的个数,兼容问题:ie==>5;非ie浏览器==>11 
 /*获取兼容的dom节点*/    var childs=getChilds(document.getElementById("all"));    document.write("<p class='bc'>"+childs.length+"</p>");
    function getChilds(node){        
var child=node.childNodes;        var result=[];        for(var i=0;i<child.length;i++){            if(child.nodeType==1){                result.push(child);            }        }        return result;    }</script></body></html>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表