您现在的位置是:网站首页> 编程资料编程资料
html5中JavaScript removeChild 删除所有节点Html5移动端网页端适配(js+rem)详解html5页面 rem 布局适配方法HTML5中 rem适配方案与 viewport 适配问题详解
2021-09-01
1280人已围观
简介 通过JavaScript可以删除所有节点,本文里主要讨论 removeChild 函数,大家可以看看下面的示例
假设div里有这么些内容:
iScroll demo: simple
现在要通过JavaScript的功能,将它们清空。
虽然可以通过一句代码直接实现:
document.getElementById("content").innerHTML=""
但是本文里主要讨论 removeChild 函数。
很想当然地以为借助下面的代码就能完成:
function deleteData(){
var el = document.getElementById('thelist');
var liNodes = document.getElementsByTagName("li");
alert(liNodes.length);
for(var i = 0; i < liNodes.length; i++){
alert("删除"+i+" liNodes[i]="+ liNodes[i]);
el.removeChild(liNodes[i]);
//<-- el.removeChild(liNodes[i]);
}
}
没想到,点击了按钮后,竟然只清除掉1、3、5...,而2、4、6....竟然没有消失,
问题从一开始就产生了:
删除掉第一个节点后,后面节点的顺序全部发生了变化:原来的第二个节点往前蹭,成为新的第一个节点;原来的第三个节点,成为第二个节点……
于是呢,接下来原本是要删除第二个节点的,却将最原始的第三个节点给删除掉了。
最终,并没有全部删除,只删除掉1、3、5,留下了2、4、6。
语法没有错误,但是得不到所要的结果,这就是算法上面的错误!该如何修正呢?
“顺序删除”不行,那就“逆序删除”吧。将 for 语句修改一下:
function deleteData(){
var el = document.getElementById('thelist');
var liNodes = document.getElementsByTagName("li");
alert(liNodes.length);
for(var i = liNodes.length-1; i >=0; i--){
alert("删除"+i+" liNodes[i]="+ liNodes[i]);
el.removeChild(liNodes[i]);
//<-- el.removeChild(liNodes[i]);
}
}
试试吧,成功了!还可以使用下面方法:
function deleteData() {
var el = document.getElementById('thelist');
var liNodes = document.getElementsByTagName("li");
alert(liNodes.length);
for (var i=0;ivar childNode = el.childNodes[0]; //总是删除第一个,是不是更简单
el.removeChild(childNode);
}
}
完成代码如下所示:
iScroll demo: simple
复制代码
代码如下:- Pretty row 1
- Pretty row 2
- Pretty row 3
- Pretty row 4
- Pretty row 5
- Pretty row 6
- Pretty row 7
- Pretty row 8
- Pretty row 9
- Pretty row 10
- Pretty row 40
现在要通过JavaScript的功能,将它们清空。
虽然可以通过一句代码直接实现:
document.getElementById("content").innerHTML=""
但是本文里主要讨论 removeChild 函数。
很想当然地以为借助下面的代码就能完成:
复制代码
代码如下:function deleteData(){
var el = document.getElementById('thelist');
var liNodes = document.getElementsByTagName("li");
alert(liNodes.length);
for(var i = 0; i < liNodes.length; i++){
alert("删除"+i+" liNodes[i]="+ liNodes[i]);
el.removeChild(liNodes[i]);
//<-- el.removeChild(liNodes[i]);
}
}
没想到,点击了按钮后,竟然只清除掉1、3、5...,而2、4、6....竟然没有消失,
问题从一开始就产生了:
删除掉第一个节点后,后面节点的顺序全部发生了变化:原来的第二个节点往前蹭,成为新的第一个节点;原来的第三个节点,成为第二个节点……
于是呢,接下来原本是要删除第二个节点的,却将最原始的第三个节点给删除掉了。
最终,并没有全部删除,只删除掉1、3、5,留下了2、4、6。
语法没有错误,但是得不到所要的结果,这就是算法上面的错误!该如何修正呢?
“顺序删除”不行,那就“逆序删除”吧。将 for 语句修改一下:
复制代码
代码如下:function deleteData(){
var el = document.getElementById('thelist');
var liNodes = document.getElementsByTagName("li");
alert(liNodes.length);
for(var i = liNodes.length-1; i >=0; i--){
alert("删除"+i+" liNodes[i]="+ liNodes[i]);
el.removeChild(liNodes[i]);
//<-- el.removeChild(liNodes[i]);
}
}
试试吧,成功了!还可以使用下面方法:
复制代码
代码如下:function deleteData() {
var el = document.getElementById('thelist');
var liNodes = document.getElementsByTagName("li");
alert(liNodes.length);
for (var i=0;i
el.removeChild(childNode);
}
}
完成代码如下所示:
复制代码
代码如下:- Pretty row 1
- Pretty row 2
- Pretty row 3
- Pretty row 4
- Pretty row 5
- Pretty row 6
- Pretty row 7
- Pretty row 8
- Pretty row 9
- Pretty row 10
- Pretty row 40
相关内容
- 使用jTopo给Html5 Canva中绘制的元素添加鼠标事件html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 分享全球十款超强HTML5开发工具html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- HTML5实现晶莹剔透的雨滴特效html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- HTML 5 input placeholder 属性如何完美兼任ie详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容AndroidHTML5 input元素类型:email及url介绍html5 input属性使用示例HTML5输入框下拉菜单功能的示例代码html5实现输入框fixed定位在屏幕最底部兼容性HTML5中input输入框默认提示文字向左向右移动的示例代码
- HTML5 embed标签定义和用法详解html5各种页面切换效果和模态对话框用法总结HTML5中drawImage用法分析HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常html5基础标签(html5视频标签 html5新标签用法)html5跨域通讯之postMessage的用法总结Html5新标签解释及用法 如何避免常见的6种HTML5错误用法
- 使用html5 canvas创建太空游戏的示例html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- Data URI scheme详解和使用实例及图片base64编码实现方法使用data URI scheme在网页中内嵌图片使用介绍
- html5实现canvas阴影效果示例canvas 阴影和图形变换的示例代码HTML5 canvas基本绘图之绘制阴影效果实例讲解使用HTML5 Canvas绘制阴影效果的方法HTML5 Canvas阴影使用方法实例演示canvas多重阴影发光效果实现
- Html5 语法与规则简要概述HTML学习笔记--HTML的语法详解(必看)简单整理HTML5的基本特性和语法详解HTML&CSS&JavaScript语法辞典-(专业版) (半场方人) PDF扫描版 93.1HTML5的语法变化介绍HTML5 新旧语法标记对我们有什么好处HTML语法大全_html语言语法大全(必看)
- html5桌面通知(Web Notifications)实例解析Html5中的桌面通知Notification的实现HTML5实现桌面通知 提示功能HTML5实现Notification API桌面通知功能 突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面HTML5中的Web Notification桌面通知功能的实现方法
