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 相关文章推荐
WEB 浏览器兼容 推荐收藏
May 14 Javascript
9行javascript代码获取QQ群成员具体实现
Oct 16 Javascript
JS常用函数使用指南
Nov 23 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
angular.foreach 循环方法使用指南
Jan 06 Javascript
JavaScript学习笔记之基础语法
Jan 22 Javascript
浅谈下拉菜单中的Option对象
May 10 Javascript
JS 实现Base64编码与解码实例详解
Nov 07 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
详解vue-router基本使用
Apr 18 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
js实现select下拉框选择
Jan 11 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
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php内存缓存实现方法
2015/01/24 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
babel基本使用详解
2017/02/17 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
瑞典耳机品牌:URBANISTA
2019/12/03 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
毕业评语大全
2014/05/04 职场文书
表彰大会策划方案
2014/05/13 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
初一年级组工作总结
2015/08/12 职场文书
执行力心得体会范文
2016/01/11 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS