Удалить id div только от первого родителя - PullRequest
0 голосов
/ 26 октября 2019

Я хочу удалить div "id = child" только из div "id = parent", но не удалять div "id = child" за пределами "id = parent" ??? Конечно, внутри родителя и снаружи будет больше элементов с одинаковым идентификатором.

<style>
#parent{ 
    width: 150px; 
    height: 150px; 
    background-color: blue; 
}
#child{ 
    width: 50px; 
    height: 50px; 
    background-color: red; 
}
</style>
<div id="parent">
   <div id="child"></div>
</div>

<div id="child"></div>

<button onclick="myFunction()" >click</button>
<script>
function myFunction(){
   document.getElementById("child").remove();
}
</script>

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Может быть, вы могли бы сделать это через parent.childNodes, если вы не хотите менять html

function myFunction() {
   const parent = document.getElementById("parent");
   parent.childNodes.forEach(el => el.id == 'child' && el.remove());
}
0 голосов
/ 26 октября 2019

Вам нужно изменить HTML-код, чтобы иметь класс, а не идентификатор для более чем одного элемента.

<div id="parent">
<div class="child"></div>
</div>

<div class="child"></div>

<button onclick="myFunction()" >click</button>

А затем используйте javascript, чтобы получить первый элемент класса, подобный этому:

<script>
function myFunction(){
var element = document.getElementsByClassName("child")[0];//the selector will select an 
//array of all elements with the same class, so we specify the first by denoting [0]
element.parentNode.removeChild(element);//and then remove that element
}
</script>

Редактировать: если вы хотите сделать это с идентификатором, измените код с

var element = document.getElementsByClassName("child")[0];

на

var element = document.getElementById("child");

...