children的childNodes区别

childNodes:获取子元素的节点,包括文本节点、元素节点、注释节点;

<div id="box">
    <ul id="ul">
        <li>第一个</li>
        <li>第二个</li>
        <li>第三个</li>
    </ul>
    <p>我是第二个子节点</p>
</div>
var oBox = document.getElementById("box");
 console.log(oBox.childNodes.length);  //得到的结果为5;

children:获取子元素的元素节点(只包括元素节点);

var oBox = document.getElementById("box");
 console.log(oBox.children.length);//得到的结果为2;

childNodes模拟children:

function myChild(ele){
    var eleChild = ele.childNodes; //获取所有的子元素(包括文本节点、元素节点、注释节点);
    var str = [];
    for(var i = 0;i<eleChild.length;i++){ //循环所有的文本节点,以便都能拿到;
        if(eleChild[i].nodeType == 1){  //nodeType == 1 是文本节点;
            str.push(eleChild[i]);//将得到的每一项子元素添加到数组的后面;
        }
    }
    return str;
}
var oBox = document.getElementById("box");
 console.log(myChild(oBox).length);  //得到的是2--所有元素节点


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值