Это исключит parent2
из вашего события onclick:
var div = document.getElementsByTagName("div");
var divCount = div.length;
var clickedDivId;
for (var i = 0; i < divCount; i += 1) {
if(div[i].id != "parent2"){ //<-- Only if div is not parent2
div[i].onclick = function(e) {
clickedDivId = this.id;
event.stopPropagation();
alert(this.id);
};
}
}
#parent {
width: 450px;
height: 170px;
margin: 10px;
padding: 10px;
background-color: blue;
}
#parent2 {
width: 450px;
height: 170px;
margin: 10px;
padding: 10px;
background-color: blue;
}
#child {
width: 430px;
height: 70px;
margin: 10px;
float: left;
background-color: red;
}
<div id="parent">
<div id="child"></div>
</div>
<div id="parent2">
<button type="button" onclick="alert('Hello world!')">Click Me!</button>
</div>
Хотя я думаю, что было бы лучше решить эту проблему с помощью класса:
var clickables = document.getElementsByClassName("clickMe")
var divCount = clickables.length;
var clickedDivId;
console.log(clickables);
for(let i=0; i<clickables.length; i++){
clickables[i].onclick = function(e) {
clickedDivId = clickables[i].id;
event.stopPropagation();
alert(clickables[i].id);
};
}
#parent {
width: 450px;
height: 170px;
margin: 10px;
padding: 10px;
background-color: blue;
}
#parent2 {
width: 450px;
height: 170px;
margin: 10px;
padding: 10px;
background-color: blue;
}
#child {
width: 430px;
height: 70px;
margin: 10px;
float: left;
background-color: red;
}
<div id="parent">
<div id="child" class="clickMe"></div>
</div>
<div id="parent2">
<button class="clickMe" type="button">Click Me!</button>
</div>