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 相关文章推荐
msn上的tab功能Firefox对childNodes处理的一个BUG
Jan 21 Javascript
javascript Excel操作知识点
Apr 24 Javascript
js textarea自动增高并隐藏滚动条
Dec 16 Javascript
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
JavaScript实现拖拽和缩放效果
Aug 24 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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
php格式化json函数示例代码
2016/05/12 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
详细介绍Python中的偏函数
2015/04/27 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
python中map的基本用法示例
2018/09/10 Python
Python如何读取文件中图片格式
2020/01/13 Python
python数字类型math库原理解析
2020/03/02 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
Java的五个基础面试题
2016/02/26 面试题
人力资源行政经理自我评价
2013/10/23 职场文书
党员干部承诺书范文
2014/03/25 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
vue中data里面的数据相互使用方式
2022/06/05 Vue.js