3 回答

TA貢獻1851條經驗 獲得超3個贊
我想這可以解決問題:
const spanc = document.querySelectorAll('.div1 .spanc'); spanc.forEach(node => node.remove());

TA貢獻1807條經驗 獲得超9個贊
因此,問題的一部分是您嘗試刪除的跨度具有不同的父元素;有時它是一個跨度,否則它是一個div。
const itemsToRemove = document.getElementsByClassName('spanc');
const parents = document.getElementsByClassName('spanp');
[...parents].forEach(span => {
const itemsToRemove = span.getElementsByClassName('spanc');
[...itemsToRemove].forEach(item => span.removeChild(item));
});
const outerParent = document.getElementsByClassName('div1')[0];
const upperItemsToRemove = outerParent.getElementsByClassName('spanc');
[...upperItemsToRemove].forEach(item => outerParent.removeChild(item));
<div class="div1">
<span class="spanp">span1<span class="spanc">spanchild1</span></span>
<span class="spanc">spanc</span>
<span class="spanp">span2<span class="spanc">spanchild1</span></span>
<span class="spanc">spanc</span>
<span class="spanp">span2<span class="spanc">spanchild1</span></span>
<span class="spanc">spanc</span>
</div>

TA貢獻1895條經驗 獲得超7個贊
我通過使用 while 循環而不是 forloop 得到了答案
while(list.length>0){
let i=0;
list[i].parentNode.removeChild(list[i]);
}
- 3 回答
- 0 關注
- 157 瀏覽
添加回答
舉報