js removeChild 方法深入理解
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的removeChild()函数用法详解
removechild 函数可以删除父元素的指定子元素. 如果此函数删除子节点成功,则返回被删除的节点,否则返回null. 语法结构: fatherObj.removeChild(childrenObj) 参数解释: 1.fatherObj:要删除子元素的元素对象. 2.childrenObj:要被删除的子元素对象. 特别说明: 在火狐.谷歌和IE8以上浏览器中,空白也算是一个文本节点,但是在IE8和IE8以下浏览器中会忽略空白文本节点,具体可以参阅javascript如何获取元素的子节点和父节
-
javascript删除元素节点removeChild()用法实例
本文实例讲述了javascript删除元素节点removeChild()用法.分享给大家供大家参考.具体分析如下: 操作DOM节点的方法:removeChild(),移除子节点,那么可以变通一下来实现移除指定的节点,我们可以先去找到要删除节点的父节点,然后在父节点中运用removeChild来移除我们想移除的节点. function removeElement(_element){ var _parentElement = _element.parentNode; if(_parentEleme
-
javascript removeChild 导致的内存泄漏
为得求证,自己写了一个页面来验证怎样内存泄漏.代码如下 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head
-
javascript移出节点removeChild()使用介绍
removeChild(a)是用来删除文档中的已有元素 参数a:要移出的节点 复制代码 代码如下: <div id="guoDiv"> <span>1</span> <span>2</span> <span>3</span> </div> var oDiv = document.getElementById("guoDiv"); var firsChild = oDiv.
-
javascript removeChild 使用注意事项
假如:一段普通的代码: 其中gift_list为一个table的id 复制代码 代码如下: var giftBody = document.getElementById("gift_list").getElementsByTagName("tbody")[0]; var giftTrs = giftBody.getElementsByTagName("tr"); for (var i=0;i<giftTrs.length;i++) { gi
-
js removeChild 障眼法 可能出现的错误
有结构: 复制代码 代码如下: <ul id="demo"> <li>a</li> <li>b</li> <li>c</li> </ul> 如果运行代码1: 复制代码 代码如下: var ul = document.getElementById('demo'); var liList = ul.getElementsByTagName('li'); for (var i = 0; i <
-
JavaScript中removeChild 方法开发示例代码
1. 概述 删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置. 当你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新 // 拿到待删除节点: var self = document.getElementById('to-be-removed'); // 拿到父节点: var parent = self.parentElement; // 删除: var removed = parent.remove
-
js使用removeChild方法动态删除div元素
在做用户查找时 因为要把查找的结果动态加载和显示,所以,那些html元素要由Ajax动态生成.用户打开查找界面时,有系统推荐的用户,而当用户按条件查找后,查找的结果动态加载和显示.所以考虑到用js来搞. 这个for循环就是移除已有的表单.然后根据Ajax请求过来的数据,动态生成新的表单对象.一定要注意j变量从大往小循环,否则,删除div元素后会引起serchResultLenth=serchResult.children.length;长度的变化(这个问题摸索了好久,才搞定,切记) for(va
-
Javascript removeChild()删除节点及删除子节点的方法
下面给大家介绍Javascript removeChild()删除节点的方法,具体详情如下所示: 在Javascript中,只提供了一种删除节点的方法:removeChild(). removeChild() 方法用来删除父节点的一个子节点. 语法: parent.removeChild(thisNode) 参数说明: 参数 说明 thisNode 当前节点,即要删除的节点 parent 当前节点的父节点,即 thisNode.parentNode 例如,删除 id="demo" 的节
-
js removeChild 方法深入理解
1. 概述 删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置. 当你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新 // 拿到待删除节点: var self = document.getElementById('to-be-removed'); // 拿到父节点: var parent = self.parentElement; // 删除: var removed = parent.remove
-
深入对Vue.js $watch方法的理解
博主最近对着vue.js的官方教程在自学vue.js,博主自幼愚钝,在教程中真的是好多点都不太理解,接下来要说的这个$watch方法就是其中一个不太理解的点了.咱们先来看一下对于$watch方法在vue.js的API中是怎么解释的吧:观察 Vue 实例变化的一个表达式或计算属性函数.回调函数得到的参数为新值和旧值.表达式只接受监督的键路径.对于更复杂的表达式,用一个函数取代.官方示例: // 键路径 vm.$watch('a.b.c', function (newVal, oldVal) { /
-
关于JS中prototype的理解
每一个构造函数都有一个属性叫做原型(prototype).这个属性非常有用:为一个特定类声明通用的变量或者函数. prototype的定义 你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javascript的方法可以分为三类: a 类方法 b 对象方
-
JS原型链怎么理解
在谈原型链之前,我们首先要了解自定义函数与 Function 之间是什么关系,而构造函数.原型和实例之间又存在什么千丝万缕的关系呢?其实,所有的函数都是 Function 的实例.在构造函数上都有一个原型属性 prototype,该属性也是一个对象:那么在原型对象上有一个 constructor 属性,该属性指向的就是构造函数:而实例对象上有一个 _proto_ 属性,该属性也指向原型对象,并且该属性不是标准属性,不可以用在编程中,该属性用于浏览器内部使用. // _proto_ 在函数里有一个
-
js数组方法reduce经典用法代码分享
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要单挑reduce方法,一个原因是我对这个方法掌握不够,不能够用到随心所欲.另一个方面,我也感觉到了这个方法的庞大魅力,在许多的场景中发挥着神奇的作用. 理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. a
-
vue加载自定义的js文件方法
在做项目中需要自定义弹出框.就自己写了一个. 效果图 遇见的问题 怎么加载自定义的js文件 vue-插件这必须要看.然后就是自己写了. export default{ install(Vue){ var tpl; // 弹出框 Vue.prototype.showAlter = (title,msg) =>{ var alterTpl = Vue.extend({ // 1.创建构造器,定义好提示信息的模板 template: '<div id="bg">' + '&
-
不刷新网页就能链接新的js文件方法总结
如何不刷新网页就能链接新的js文件,其实在HTML语言中已经有相关的函数了,就是再添加一个<script src=.....></script>. 函数很简单,叫document.body.appendChild(script); 使用方法如下 <!DOCTYPE html><html><head><meta charset="utf-8"> <script language="javascript
-
vscode 调试 node.js的方法步骤
引言 作为前端工程师经常打交道的开发工具无非 IDE 编辑器 和 Chrome,在 Chrome 中调试是非常方便的,直接在 开发者工具的 source 栏打断点就可以了.那么,如果遇到需要写 node 相关的代码,比如 webpack 配置项,应该怎么调试来实现我们的需求呢? VS Code 配置 在 VS Code 中单独有 debug 的菜单,需要指定 launch.json 文件,该文件为 VS Code 提供启动调试所需的各项配置. // launch.json // 使用 Intel
-
18个高频使用的JS工具方法总结
目录 前言 1. 回到顶部 2. 删除数组指定项 3. 获取 url 某一个参数 4. 复制文本 5. 禁止复制文本 6. 复制文本带版权信息 7. 判断数据类型和数据值 8. ua 环境判断 9. 时间格式转换 10. 函数防抖 11. 全屏/退出全屏 12. 禁止打开控制台调试 13. 密码强度展示 14. 五星好评 15. 保留 n 位小数 16. 金额转大写 17. 常用正则判断 18. 解决运算精度丢失的问题 前言 将自己做前端6年以来在项目中使用很高频的工具方法整理了出来,分享一下,
-
基于Require.js使用方法(总结)
一.为什么要使用require.js 首先一个页面如果在加载多个js文件的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长:其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序,当依赖关系很复杂的时候,代码的编写和维护都会变得困难. require.js,就是为了解决这两个问题: 1. 实现js文件的异步加载,避免网页失去响应: 2. 管理模块之间的依赖性,便于代码的编写和维护. 二.require.js的加载 第一步,去官网下载最新版本,直接放到页面进行加载 <sc
随机推荐
- Java中使用开源库JSoup解析HTML文件实例
- Java线程安全的计数器简单实现代码示例
- asp.net使用jquery实现搜索框默认提示功能
- python批量修改文件名的实现代码
- JS两种定义方式的区别、内部原理
- Android编程实现PendingIntent控制多个闹钟的方法
- php实现图形显示Ip地址的代码及注释
- PHP正则表达式 /i, /is, /s, /isU等介绍
- Javascript 实现图片无缝滚动
- js生成随机数方法和实例
- 关于若干数据库数据插入性能的对比分析
- jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
- Jquery为DIV添加click事件的简单实例
- 用Javascript实现Sleep暂停功能代码
- 金山反病毒20041216_日报
- RAVFY.EXE,RAVWL.EXE,msdebug.dll,Servere.exe等的清除指南附SREng.EXE PowerRmv.com unlocker1.8.5.exe打
- IIS卸载后重装时提示:安装程序无法复制一个或多个文件 特定错误码是 0xe0000233
- 我的论坛源代码(二)
- table高级应用把表格进行到底(必看)
- 如何禁止Windows系统的ipc$默认共享