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 相关文章推荐
js 获取Listbox选择的值的代码
Apr 15 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
jQuery动态添加 input type=file的实现代码
Jun 14 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
弹出最简单的模式化遮罩层的js代码
Dec 04 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
Bootstrap整体框架之CSS12栅格系统
Dec 15 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
vue中的非父子间的通讯问题简单的实例代码
Jul 19 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
关于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
用PHP读取IMAP邮件
2006/10/09 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
php实现的RSS生成类实例
2015/04/23 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
Python类装饰器实现方法详解
2018/12/21 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
如何唤起类中的一个方法
2013/11/29 面试题
幼儿园儿童节主持词
2014/03/21 职场文书
股权转让协议书
2014/04/12 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
首都博物馆观后感
2015/06/05 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL