- 40
- 0
js递归删除所有子元素
碰到递归的问题没有写终止递归条件的思路,大家可以说下大概处理思路吗?谢谢!
相关代码
<button class="btn btn-sm btn-success" data-pid="0" data-id="1">1</button>
<button class="btn btn-sm btn-success" data-pid="1" data-id="4">11</button>
<button class="btn btn-sm btn-success" data-pid="4" data-id="7">111</button>
<button class="btn btn-sm btn-success" data-pid="1" data-id="5">12</button>
<button class="btn btn-sm btn-success" data-pid="1" data-id="6">13</button>
<button class="btn btn-sm btn-success" data-pid="0" data-id="2">2</button>
<button class="btn btn-sm btn-success" data-pid="0" data-id="3">3</button>
<script>
function remove_child(elem,id,pid=0){
console.log($(elem+"[data-id='"+id+"']").text()+'开始:');
if(pid>0){
console.log($(elem+"[data-id='"+id+"']").text()+' remove id='+id);
$(elem+"[data-id='"+id+"']").remove();
}
if($(elem+"[data-pid='"+id+"']").length>0){
var child_elem = $(elem+"[data-pid='"+id+"']");
for (i = 0; i < child_elem.length; i++){
console.log(child_elem.eq(i).text()+'循环:'+i);
remove_child(elem,child_elem.eq(i).attr("data-id"),child_elem.eq(i).attr("data-pid"));
}
}else{
if(pid>0){
console.log($(elem+"[data-id='"+id+"']").text()+' remove-id='+id);
$(elem+"[data-id='"+id+"']").remove();
}
return ;
}
}
remove_child('button',1);
</script>
输出
1开始:
11循环:0
11开始:
11 remove id=4
111循环:0
111开始:
111 remove id=7
remove-id=7
13循环:2
13开始:
13 remove id=6
remove-id=6
终止递归i=2了,导致跳过12了,代码如何调整?
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
听一首歌、念一个人 普通会员 1楼
在JavaScript中,你可以使用递归来删除所有子元素。以下是一个例子:
javascript function removeSubElements(arr, index = 0) { if (index >= arr.length) { return arr; } arr.splice(index, 1); removeSubElements(arr, index + 1); return arr; }在这个函数中,我们首先检查
index是否大于等于数组的长度。如果是,我们就返回数组本身。否则,我们使用splice方法从数组中删除当前元素,并递归地调用removeSubElements函数,将索引向后移动一位。这样,每次递归调用都会删除一个元素,直到index等于数组的长度。你可以像这样使用这个函数:
javascript const arr = [1, 2, 3, 4, 5]; const result = removeSubElements(arr); console.log(result); // 输出:[1, 2, 3, 4, 5]在这个例子中,我们传递了一个数组和一个初始的索引
0。removeSubElements函数将删除所有在索引0到index之间的元素。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

