对此的回应: How to remove elements except any specific id 接近我想要的但不完全。
在我的情况下,我问我如何删除父id以外的所有元素,除了id_n及其子节点:test1和test2。需要删除元素,而不仅仅是隐藏。
<div id = "parent_id">
<div id = "id_1">
<div id = "id_11"> test</div>
<div id = "id_12">test </div>
</div>
<div id = "id_2"> test</div>
<div id = "id_n">id_n<br>
<div id='test1'>test1<br><div>
<div id='test2'>test2<br><div>
</div>
</div>
结果应为:
<div id = "parent_id">
<div id = "id_n">id_n<br>
<div id='test1'>test1<br><div>
<div id='test2'>test2<br><div>
</div>
</div>
感谢您查看此内容。您的建议表示赞赏。
答案 0 :(得分:1)
好的,考虑到这一点后,还有另一种使用数组操作的方法:
var parentElement = document.getElementById('#parent_id');
parentElement.innerHtml = [].splice.call(parentElement.children).filter(item, function() {
return item.id === childId;
}).reduce((collatedHtml, item, function() {
return collatedHtml + item.innerHtml;
});
这会抓取parentElement的所有直接子节点并返回一个新数组(使用Array.filter),然后使用Array.Reduce整理所有子节点的innerHtml。
注意:我没有使用...
前缀转换为数组的原因是因为IE 11及以下版本不支持
答案 1 :(得分:1)
使用jQuery&#39; siblings
删除所有孩子:
$('#id_n').siblings().remove();