Js如何删除所有子元素以及当前元素

半导体物理-Si晶体生长方向<2> Si(硅)晶体的生长方向是一个重要的概念,尤其在半导体工业中。这个概念涉及到晶体在生长过程中原子排列的方向,对晶体的性质和应用有重大影响。让我为您详细解释:理解Si晶体的生长方向对于半导体材料的研究和应用非常重要,它直接影响了最终器件的性能和制造工艺。在实际应用中,选择适当的生长方向可以优化器件性能,提高产品质量。 阅读详情

示例展示

6b7fbc8219e92645d3aa1066a346a6e3.gif
deleteallelem

具体描述

在原生js当中,html的内容元素总是以嵌套的关系存在于网页中,因此,可以通过遍历树的方法访问网页里的每一个元素,当然也是可以删除指定的子元素的

原生js代码

// 删除元素的函数
function deleteChilds() {
   var ul = document.getElementsByTagName("ul")[0];  // 获取父级DOM
   // 判断是否包含子元素
   if(ul.hasChildNodes()) {
     var len = ul.childNodes.length;  // 子元素的个数
     for(var i = 0;i<len;i++) {       // 遍历
        ul.removeChild(ul.childNodes[0]);  // 从第一个元素开始删除
     }

   }
}

如下是html代码

<ul>
    <li>coder.itclan.cn</li>
    <li>itclan.cn</li>
    <li>aikelaidev.cn</li>
    <li>pay.aikelaidev.cn</li>
</ul>

删除父级元素的所有节点,我们常规性的思维,很容易写这样的代码,如下的代码是无法删除干净的

function deleteChilds() {
   var ul = document.getElementsByTagName("ul")[0];  // 获取父级DOM
   
   var len = ul.childNodes.length;  // 子元素的个数
   for(var i = 0;i<len;i++) {       // 遍历
        console.log(ul.childNodes[i].nodeName)
        ul.removeChild(ul.childNodes[i]);  // 从第一个元素开始删除
   }
}

当你把索引为0的子节点删除后那么很自然的原来索引为1节点此时它的索引变成0了,而这时变量i已经变成1了,程序继续走时就会删除原先索引为2的现在为1的节点,这样程序运行的结果就是只删除了一半的子节点

在遍历时因为删除了子节点,ul.childNodes.length值已经减小,影响了遍历结果

我们应该从后面往前删除

function deleteChilds() {
   var ul = document.getElementsByTagName("ul")[0];  // 获取父级DOM
   
   var len = ul.childNodes.length;  // 子元素的个数
   for(var i = len-1;i>=0;i--) {       // 从后往前
        ul.removeChild(ul.childNodes[i]);  // 从第一个元素开始删除
   }
}

Vue版本实现

如下是上面展示示例的代码

<template>
    <div class="wrap">
         <div>
               <ul id="ul">
                  <li  v-for="(item,index) in lists" :key="index"><span>{{item}}</span><el-button  type="danger" @click="handleDelteItem(index)" size="mini">删除</el-button></li>
               </ul> 
         </div>
         <div class="deletAllBtn">
            <el-button type="primary" @click="handleDelete">删除所有元素</el-button>
         </div>   
    </div>
</template>

<script>
    export default {
        name: 'deleteChildELem',
        data() {
            return {
                lists: ["coder.itclan.cn",'itclan.cn','tv.itclan.cn','short.itclan.cn','aikelaidev.cn']
            }
        },

        methods: {
            handleDelete() {
                // this.lists = [];  // 如果是使用Vue编程思维,删除所有子元素,直接操作数组为空,就删除所有子元素了的
                // 这里用原生js实现,主要是演示操作子节点的方式,在vue项目里,操作DOM的话,那使用vue就没有任何意义价值了的
                var ul = document.getElementById('ul');// 获取父级元素的DOM
                // 判断是否包含子元素
                if(ul.hasChildNodes()) {
                    var len = ul.childNodes.length;  // 子元素的个数
                    for(var i = 0;i<len;i++) {
                        ul.removeChild(ul.childNodes[0]);  // 从第一个元素开始删除
                    }
                }

                // 也可以等价如下这样,逆向删除节点
                /**
                 *
                 *  for(var i = ul.childNodes.length-1;i>=0;i--) {
                        ul.removeChild(ul.childNodes[i])
                    }
                 * 
                 */

            },

            handleDelteItem(index) {
                // 如果是使用vue的话,那么直接操作数组的方法就可以了的,一行代码就可以可以解决
                this.lists.splice(index,1);
            }
        }
    }
</script>

<style lang="scss" scoped>
.wrap {
    text-align:center;
}

span{
    display:inline-block;
    width: 200px;
}

ul>li {
  margin-bottom: 5px;
  border-bottom: 1px dashed #ccc;
}

.deletAllBtn {
    margin-top: 20px;
}
</style>

删除数组的所有子元素,在Vue当中直接清空数组就可以了也就是this.lists = []就可以,而删除当前元素则使用this.lists.splice(index,1);,splice方法就可以

总结

在操作一些列表,新增和删除,或全部删除清空,是一个比较常见的操作,使用原生Js全部删除操作是,通过循环遍历,一个一个的删除,而在框架里,是操作数组,想要删除全部,清空数组数据就可以了的

JS如何为表单聚焦控件设置醒目的样式

2023-01-31

06dbc6fe92183a0f5882348d2c890bca.jpeg

Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

2023-01-30

3ce0026bc4d854bcf15438c32c1d719d.jpeg

VueJs中如何使用Teleport组件

2023-01-22

e171504de3f6b2b63815a7b4b9fe83b4.jpeg

VueJs中如何使用provide与inject

2023-01-21

587a7edcc8a338f0795d4cff8819e55a.jpeg


661f34a1981705a61654c19b13e32526.jpeg

点击左下角查看更多

273a9b1e77528b1b1aa83a3be77457da.gif

第28节:cesium 加载高程数据(含源码+视频) cesium 加载高程(地形)数据 阅读详情

相关推荐

Windows10系统添加虚拟网卡(Microsoft Loopback Adapter)的方法

1、按下win + R键,在其中输入:hdwwiz,然后 (enter) 2、点击下一步即可 3、其次选择【网络适配器】,然后点击【下一步】。 4、在厂商处选择Microsoft,网络适配器处选择【Microsoft Loopback Adapter】选项 ,点击【下一步】。 5、通过上面几个步骤的设置后,一块虚拟网卡的安装设置就算是完成了。 ...

一个懒鬼的博客 2万+

JS 如何正确清除一个元素下的所有子元素

删除一个子元素后,HTMLCollection 的长度会发生改变

japlus的博客 8800

数字通信:信源编码、信道编码、调制、物理信道、解调、信道解码、信源解码

在通信系统中,信息的传输通常需要经过一系列的处理步骤,确保数据可以在信道中高效且可靠地传输。以下是信源编码、信道编码、调制、物理信道、解调、信道解码、信源解码的具体含义及其常见技术的解释。

weixin_44012667的博客 4804

js移除子元素

使用innerHTML属性将其设为空字符串,可以一次性清除该元素的所有子节点内容。但是需要注意的是,innerHTML会触发重排和重绘,如果是大量DOM操作,性能消耗可能较大。如果只需要删除子节点而不需要保留原有DOM树结构或者触发事件,这种方法更为简洁高效。如果需要保持原有的DOM树结构或者关心性能,原始的while循环是一个更好的选择。

weixin_44283589的博客 1520

混合部署 操作系统混合部署

在openEuler Embedded 22.03中,已经集成了OpenAMP相关支持,并与openEuler的SIG Zephyr合作实现了openEuler Embedded与实时操作系统Zephyr在QEMU平台上的混合部署。具体的混合部署方式取决于设备的硬件和软件支持。例如,可以使用虚拟机软件(如VirtualBox)在Linux操作系统上运行Android虚拟机,从而实现Linux和Android的混合部署。需要注意的是,混合部署涉及到设备的硬件和软件兼容性,以及操作系统的配置和管理。

dianqicyuyan的博客 1763

若依Vue整合积木报表实战:Token安全校验全流程解析

本文详细解析了在若依Vue后台系统中安全集成积木报表的全流程,重点阐述了Token安全校验的核心机制。通过前端菜单配置、Token传递、后端权限拦截及自定义Token服务实现,构建了一套完整的企业级报表访问安全防线,确保核心业务数据的安全可控。

t8u9v0的博客 576

JS中如何删除某个元素下的所有子元素(节点)?

JS中如何删除某个元素下的所有子元素(节点)? JS中如何删除某个父元素下的所有子元素?这里我介绍几种方法: 1.通过元素的 innerHTML 属性来删除 这种方式我觉得是最有方便的,直接找到你想要的父元素,直接令其 element.innerHTML = “”; 举例说明: 1 2 3 2.通过 removeChild() 方法来删除 removeChild() 的用法是先找到父级元素parent,然后调用 parent.removeChild(thisNode) 来删除当前子节点(

weixin_52233403的博客 3596

深入浅出DNS系列(一)- DNS杂谈

黄丝玛:班达山,你好,我记性不好,你告诉我搜狐、新浪的网站IP地址好吗? 班达山:你问问DNS先生吧,他专门干这买卖的

jiangsd198的博客 4129

原生 JS 从父元素清除所有子元素

二、使用`innerHTML`设置为空字符串 1. 将父元素的`innerHTML`属性设置为空字符串,这会清除所有子元素的 HTML 内容。 三、使用`empty`方法 1. 如果在项目中有自定义的工具函数,可以创建一个`empty`方法来清空父元素。

weixin_64684095的博客 880

python乘法运算 信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

本文解析了全国青少年信息素养大赛Python编程挑战赛的乘法运算题目。题目要求通过递归算法实现两个自然数的乘法运算,并输出算式。算法分析指出可将乘法转化为累加,使用递归函数实现。程序代码展示了一个自定义函数add(),通过递归调用完成累加运算。文章还分析了考点,包括递归函数、输入处理、分支语句等编程基础知识的应用。最后强调解题方法的多样性,重点在于理解递归原理和实现题目要求。该题目难度适中,主要考查选手对递归算法的理解和编程基础能力。

青少年编程学习指导 787

26.Labview波形图、XY图、强度图使用精讲

1. 波形图基础概念,如何使用,1.1 波形图与波形图表1.2 XY图如何设计、如何使用?1.3 强度图原理、如何使用、使用案例;2. 图形的参数设置2.1 波形图及波形图表的外观设计2.2 XY图的前面板设计2.3 强度图属性设置。

关注我,更多技术问题欢迎私聊~ 7497

清除html下所有内容,js中如何删除某个元素下面的所有子元素?(两种方法)

js中如何删除某个元素下面的所有子元素?(两种方法)一、总结方法一:通过元素的innerHTML属性元素element.innerHTML="";方法二:通过元素的removeChild方法子元素element.parentNode.removeChild(子元素element);二、js中如何删除某个元素下面的所有子元素?问题1:js删除一个父元素下面的所有子元素比如11111122222 31...

weixin_28956207的博客 3143

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

js实现当前子元素删除自身的父元素

js实现当前子元素删除自身的父元素 // An highlighted block var video=['video','video'] var str='' video.forEach((item,index)=>{ str+=`<div class="index"> <div class="close">x</div> &lt

weixin_45685148的博客 1557

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

获取当前点击的DOM元素?

获取当前点击的DOM元素? function add(e){ var ele = e.target; return ele; } //获取当前点击元素的父节点 e.target.parentNode //获取当前点击元素的子元素 e.target.children[0] //删除当前点击元素 e.target.parentNode.removeChild(ele); ...

渣渣砖 1823

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

常用javascript dom操作

以下代码不是最简洁的,但对于学习者来说更容易理解。 JS如何获取指定DIV下的子元素LI值 var div=document.getElementById('a');var ul=div.childNodes.item(0);var lis=ul.childNodes;for(var i=0;i<lis.length;i++){alert("Item "+i+": "+lis.item(...

weixin_30954607的博客 59

js实现删除当前元素的父级元素代码

js实现删除当前元素的父级元素代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>奇葩天地网</title> </head> <body> <ul class="list2"> <li> <img alt="" src="qipa250_1.jpg"/>

徊忆羽菲 4007

js与jquery获取父元素,删除子元素的不同方法

var obj=document.getElementById("id");得到的是dom对象,对该对象进行操作的时候使用js方法 var obj=$("#id");得到的是jquery对象,对该对象进行操作的时候使用jquery方法 1.对于上面获得的对象进行遍历 (1).js方法  for(vat i=0;j (2).jquery方法  $(“#id”).each(function()

稻草人技术博客 2851

js中如何删除某个元素下面的所有子元素?(两种方法)

js中如何删除某个元素下面的所有子元素?(两种方法) 一、总结 方法一:通过元素的innerHTML属性 元素element.innerHTML=""; 方法二:通过元素的removeChild方法 子元素element.parentNode.removeChild(子元素element);   二、js中如何删除某个元素下面的所有子元素? 问题1: js删除一个父元素下面的所有...

weixin_33807284的博客 9705

js删除指定html及子标签,js中如何删除某个元素下面的所有子元素?(两种方法)...

js中如何删除某个元素下面的所有子元素?(两种方法)一、总结方法一:通过元素的innerHTML属性元素element.innerHTML="";方法二:通过元素的removeChild方法子元素element.parentNode.removeChild(子元素element);二、js中如何删除某个元素下面的所有子元素?问题1:js删除一个父元素下面的所有子元素比如11111122222 31...

weixin_39685674的博客 4666

js实现删除页面元素

三种情况: 删除元素自身 - xxx.remove() - xxx.parentNode.removeChild(xxx) 删除子元素 - 父.removeChild(子) 删除父元素 - xxx.parentNode.parentNode.removeChild(xxx的父元素); <div class="fatherBox" style="border:1px solid red"> 我是父盒子 <div class="

wind的博客 3万+

js遍历 子节点 子元素

js遍历 子节点 子元素   Js 节点 子元素 属性 方法    // 添加子节点前 删除所有子节点   var usernameEle = document.getElementById("username");   var childs = usernameEle.childNodes;      for(var i = childs.length - 1; i >= 0;

小哈咪 1万+

js与jquery两种不同的方式获得父元素、删除子元素

var obj=document.getElementById("id");得到的是dom对象,对该对象进行操作的时候使用js方法 var obj=$("#id");得到的是jquery对象,对该对象进行操作的时候使用jquery方法 1.对于上面获得的对象进行遍历       (1).js方法  for(vat i=0;jobj[i] 来获得对应的某一个元素}       (2).jqu

wzy_3463的专栏 6228

dom 删除所有子元素_如何从DOM元素中删除所有子级

dom 删除所有子元素Given an item in the DOM, use querySelector() to identify it, like this: 给定DOM中的项目,请使用querySelector()进行标识,如下所示: const item = document.querySelector('#itemId')then, to remove all its child...

cuk0051的博客 7146

js获取子元素

在原生js里获取子元素childNodes ,但是在一些浏览器会把空格当成子元素 html html: &lt;div class="box"&gt; &lt;div&gt;2&lt;/div&gt; &lt;div&gt;1&lt;/div&gt; &lt;/div&gt; Js: var $ = function(o){ //获取元素函数 return doc

时光的博客 3万+

html删除子元素无效,如何使用JavaScript删除DOM节点的所有子元素?

想要使用JavaScript删除DOM节点的所有子元素,可以使用removeChild()或remove()方法删除所有子节点;另一个方法是设置DOM节点的innerHTML= " "属性,它是一个空字符串,生成相同的输出。image下面我们通过代码示例来看看如何实现。示例1:使用removeChild()方法removeChild()方法可以从父节点删除子节点。Get Up in Morning...

weixin_42403100的博客 872
上一篇: JS如何实现勾选全部复选框和不全选复选框
下一篇: Js如何创建一个自定义对象
itclanCoder
博客等级 码龄10年 1481粉丝 434原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值