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 相关文章推荐
jQuery学习4 浏览器的事件模型
Feb 07 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
Javascript中自动切换焦点实现代码
Dec 15 Javascript
js 获取和设置css3 属性值的实现方法
May 06 Javascript
基于jQuery实现最基本的淡入淡出效果实例
Feb 02 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
Apr 03 Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 Javascript
js回调函数仿360开机
Dec 26 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
Javascript Symbol原理及使用方法解析
Oct 22 Javascript
JS实现购物车基本功能
Nov 08 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
phpstorm编辑器乱码问题解决
2014/12/01 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
学习python (1)
2006/10/31 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
Python实现常见的回文字符串算法
2018/11/14 Python
简单了解python数组的基本操作
2019/11/26 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
数控专业推荐信范文
2013/12/02 职场文书
追悼会上的答谢词
2014/01/10 职场文书
银行领导证婚词
2014/01/11 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
2015年团支书工作总结
2015/04/03 职场文书
十月围城观后感
2015/06/08 职场文书
基层党建工作简报
2015/07/21 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL