美文网首页JavaScript 基础与提高
JavaScript 坑与技巧:DOM

JavaScript 坑与技巧:DOM

作者: soojade | 来源:发表于2017-02-06 16:49 被阅读16次

DOM

当遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新。

// HTML
<div id="parent">
    <p>First</p>
    <p>Second</p>
</div>

// js
var parent = document.getElementById('parent');
parent.removeChild(parent.children[0]);
parent.removeChild(parent.children[1]); // <-- 浏览器报错

浏览器报错:parent.children[1]不是一个有效的节点。原因就在于,当<p>First</p>节点被删除后,parent.children的节点数量已经从 2 变为了 1,索引[1]已经不存在了。

因此,删除多个节点时,要注意children属性时刻都在变化。

相关文章

  • JavaScript 坑与技巧:DOM

    DOM 当遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时...

  • JavaScript 坑与技巧:this

    this 在方法内部的函数中使用this 由于this指针只在age方法的函数内指向xiaoming,在函数内部定...

  • DOM 增删改查举例

    一 什么是DOM DOM是HTML与JavaScript相互作用的接口,DOM不属于JavaScript,它是浏览...

  • JavaScript 坑与技巧:遍历

    假如要按如下方法遍历一个数组: 这样每次循环还要和len比较,时间复杂度是O(n+1)。可以使用如下方式: 上面的...

  • JavaScript 坑与技巧:reduce()

    判断字符串str="adfkjglsdkjfjsa"中每个字符出现的次数: 将数组a=[1,2,3,4,5]转换成...

  • JavaScript 坑与技巧:表单

    表单 巧用 input 加密提交 很多登录表单出于安全考虑,提交时不传输明文密码,而是密码的MD5。普通JavaS...

  • JavaScript 坑与技巧:异常

    异常 异步错误处理 用try包裹setTimeout()是无效的:原因就在于调用setTimeout()函数时,传...

  • JavaScript 坑与技巧:map

    map() 在 map 中使用 parseInt 的坑 由于map()接收的回调函数可以有3个参数:callbac...

  • JavaScript 坑与技巧:sort

    sort() 直接使用sort对数组排序 Array的sort()方法默认把所有元素先转换为 String 再排序...

  • JavaScript 坑与技巧:filter

    filter() 巧用 filter 去除数组中相同元素 filter()接收的回调函数可以有多个参数。通常我们仅...

网友评论

    本文标题:JavaScript 坑与技巧:DOM

    本文链接:https://www.haomeiwen.com/subject/ulduittx.html