繁体   English   中英

JS删除除特定ID及其子元素之外的所有元素

[英]JS Remove all elements except a specific ID and its children

对此的响应: 如何删除除任何特定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>

感谢您的关注。 感谢您的建议。

好了,考虑了这一点之后,还有另一种使用数组操作的方法:

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.Reduce整理所有子级的innerHtml之前返回一个新数组(使用Array.filter )。

注意:我不使用...前缀转换为数组的原因是因为IE 11及以下版本不支持它

使用jQuery的siblings您可以删除其所有子项:

  $('#id_n').siblings().remove();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM