Я собирался удалить Child2 родителем, но это не работает

var y = document.getElementById('parent');
y.childNodes[0].removeChild(y.childNodes[0].childNodes[2]);

<div id="parent">
    <div>
        <a href="#">First</a>
        <a href="#">second</a>
        <a href="#">third</a> <!--I wanna delete this-->
    </div>
</div>

Это просто ничего не удаляет

0
KYUMA 29 Май 2019 в 00:28

2 ответа

Лучший ответ

Используйте children вместо childNodes, потому что childNodes включает в себя другие типы элементов, тогда как children это просто элементы.

из MDN:

childNodes включает в себя все дочерние узлы, включая неэлементные узлы, такие как узлы текста и комментариев. Чтобы получить коллекцию только элементов, используйте ParentNode.children вместо.

Вы также можете использовать remove() из removeChild(), который удалит текущий элемент из DOM.

var y = document.getElementById('parent');
y.children[0].children[2].remove();
<div id="parent">
    <div>
        <a href="#">First</a>
        <a href="#">second</a>
        <a href="#">third</a> <!--I wanna delete this-->
    </div>
</div>
2
Get Off My Lawn 28 Май 2019 в 21:58
var y = document.getElementById('parent');

y.childNodes[1].removeChild(y.childNodes[1].childNodes[5]);
<div id="parent">
  <div>
    <a href="#">First</a>
    <a href="#">second</a>
    <a href="#">third</a>
    <!--I wanna delete this-->
  </div>
</div>
0
timos222 28 Май 2019 в 21:39