DOM中的previousSibling,nextSibling,firstChild,lastChild和parentNode节点学习

几个主要节点类型:
     ELEMENT_NODE         = 1;    元素节点  
     TEXT_NODE              = 3;    文本节点
     DOCUMENT_NODE     = 9;    文档节点

在IE中会自动过滤掉空白文本节点   elem.previousSibling 
在FireFox,Chrome等浏览器中可能会包含空白文本节点  elem.previousSibling  --- [object text]

     function prev(elem) {          //获取当前节点的上一个元素节点
            do {
                elem = elem.previousSibling;
            } while (elem && elem.nodeType != 1);
            return elem;
        }

        function next(elem) {         //获取当前节点的下个元素节点
            do {
                elem = elem.nextSibling;
            } while (elem && elem.nodeType != 1);
            return elem;
        }

        function first(elem) {        //当前节点的子节点的第一个元素节点
            elem = elem.firstChild;
            return elem && elem.nodeType != 1 ? next(elem) : elem;
        }

        function last(elem) {         //当前节点的子节点的最后一个元素节点
            elem = elem.lastChild;
            return elem && elem.nodeType != 1 ? prev(elem) : elem;
        }

        function parent(elem, num) {   //获取祖先元素
            num = num || 1;
            for (var i = 0; i < num; i++) {
                if (elem != null) elem = elem.parentNode;
            }
            return elem;
        }

原文:http://www.cnblogs.com/jikey/archive/2011/07/21/2112470.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值