js removeChild 方法深入理解


Posted in Javascript onAugust 16, 2016

1. 概述

删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置。

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

// 拿到待删除节点:
var self = document.getElementById('to-be-removed');
// 拿到父节点:
var parent = self.parentElement;
// 删除:
var removed = parent.removeChild(self);
removed === self; // true

2. example

<!DOCTYPE html>
<html>
<head>
</script>
</head>
<body>
<ul id="test-list">
  <li>JavaScript</li>
  <li>Swift</li>
  <li>HTML</li>
  <li>ANSI C</li>
  <li>CSS</li>
  <li>DirectX</li>
</ul>
<script>
var p= document.getElementById('test-list');
var length = p.children.length;
var i=0;
for(; i<length; ){
  var li = p.children[i];
  var text = li.innerText;
  if(text!=='JavaScript' && text!=='HTML' && text!=='CSS'){

    p.removeChild(li);
    alert(p.children.toString());
    length--;
  }else{
    i++;
  }
}
// 测试:
;(function () {
  var
    arr, i,
    t = document.getElementById('test-list');
  if (t && t.children && t.children.length === 3) {
    arr = [];
    for (i = 0; i < t.children.length; i ++) {
      arr.push(t.children[i].innerText);
    }
    if (arr.toString() === ['JavaScript', 'HTML', 'CSS'].toString()) {
      alert('测试通过!');
    }
    else {
      alert('测试失败: ' + arr.toString());
    }
  }
  else {
    alert('测试失败!');
  }
})();
</script>
</body>
</html>

以上这篇js removeChild 方法深入理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
Tinymce+jQuery.Validation使用产生的BUG
Mar 29 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
深入理解Javascript作用域与变量提升
Dec 09 Javascript
jQuery简单图表peity.js使用示例
May 02 Javascript
jQuery点缩略图弹出层显示大图片
Feb 13 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
vue动态渲染svg、添加点击事件的实现
Mar 13 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 05 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
关于javascript中限定时间内防止按钮重复点击的思路详解
Aug 16 #Javascript
总结Node.js中的一些错误类型
Aug 15 #Javascript
自动化测试读写64位操作系统的注册表
Aug 15 #Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 #Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 #Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 #Javascript
Web安全测试之XSS实例讲解
Aug 15 #Javascript
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
python记录程序运行时间的三种方法
2017/07/14 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
简单了解django索引的相关知识
2019/07/17 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
Python __slots__的使用方法
2020/11/15 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
应用艺术毕业生的自我评价
2013/12/04 职场文书
向领导表决心的话
2014/03/11 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
李强为自己工作观后感
2015/06/11 职场文书
尊师重教主题班会
2015/08/14 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电
Java设计模式中的命令模式
2022/04/28 Java/Android