DOM节点的易错点

关于节点的问题

DOM节点类型

DOM一共有十二个节点,常用的节点有三个:

1.元素节点 属性值为1
2.属性节点 属性值为2
3.文本节点 属性值为3

更多DOM节点请参考: http://www.cnblogs.com/xiaohuochai/p/5785189.html

元素节点的相关问题

问题一:找元素节点却找到了文本节点

找到的是文本节点

代码片段:

<div class="mui-card pop">
    <div class="mui-card-header mui-card-media" style="height:10vw;background-image:url(../images/cbd.jpg)"></div><div class="mui-card-content"><div class="mui-card-content-inner"><p style="color: #333;">这里显示文章摘要,让读者对文章内容有个粗略的概念...</p></div></div>
    <div id="popover" class="mui-popover show" style="height: 200px; width: 300px; background: green;">

    </div>
</div>

<script type="text/javascript">
    var pop = document.getElementsByClassName("pop");
    console.log(pop[0].firstChild);
    alert(pop[0].firstChild);
</script>

原因:在标准浏览器中,会将空格或者换行作为文本节点,而在IE8和IE8以下浏览器中则忽略。

解决方案:

<script type="text/javascript">
    var pop = document.getElementsByClassName("pop");
    d = pop[0].firstChild;
    while(d.nodeType!=1){
        d = d.nextSibling;//nextSibling  同一级下一相邻节点
    }//用一个while循环找到第一个属性值为1的节点,即(元素节点)
    console.log(d);
    alert(d);
</script>

效果图:
找到第一个子div

相关链接: http://www.softwhy.com/article-2097-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值