仅从第一位父母中删除id div

时间:2019-10-26 13:24:08

标签: javascript function parent-child removechild

我只想从div“ id = parent”中删除div“ id = child”,而不要在“ id = parent”之外删除div“ id = child” ??? 当然,会有更多具有相同ID的元素在父对象内部和外部。

<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 :(得分:0)

您需要将html更改为具有一个类,而不是多个元素的id。

<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>

编辑: 如果要使用ID,请从

更改代码

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

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

答案 1 :(得分:0)

如果不想更改html,也许可以通过parent.childNodes完成

function myFunction() {
   const parent = document.getElementById("parent");
   parent.childNodes.forEach(el => el.id == 'child' && el.remove());
}