When I click on any button it shows same first button output. How can I fix it. I want it be different when I click on different button it should display same output that button has. I want it to be on my website.
JavaScript
x
8
1
function myFunction() {
2
var x = document.getElementById("out");
3
if (x.style.display === "block") {
4
x.style.display = "none";
5
} else {
6
x.style.display = "block";
7
}
8
}
JavaScript
1
23
23
1
#out {
2
background-color: green;
3
display: none;
4
border-radius: 5px;
5
padding: 5px 0px 5px 5px;
6
color: #fff;
7
}
8
.output:hover{
9
background: black;
10
}
11
.output{
12
background:#3b4fe4 ;
13
color: #fff;
14
border: 3px solid #fff;
15
padding: 10px;
16
width: 150px;
17
text-align: center;
18
cursor: pointer;
19
}
20
.out{
21
background: green;
22
color: #fff;
23
}
JavaScript
1
16
16
1
<div class="output" onclick="myFunction()">Click me</div>
2
<div id="out">
3
This is first output
4
</div>
5
<div class="output" onclick="myFunction()">Click me</div>
6
<div id="out">
7
This is second output
8
</div>
9
<div class="output" onclick="myFunction()">Click me</div>
10
<div id="out">
11
This is third output
12
</div>
13
<div class="output" onclick="myFunction()">Click me</div>
14
<div id="out">
15
This is Fourth output
16
</div>
Advertisement
Answer
Using nextElementSibling:
JavaScript
1
10
10
1
document.querySelectorAll('.output').forEach(e => {
2
e.addEventListener('click', function(event) {
3
const x = event.target.nextElementSibling;
4
if (x.style.display === "block") {
5
x.style.display = "none";
6
} else {
7
x.style.display = "block";
8
}
9
})
10
})
JavaScript
1
26
26
1
.out {
2
background-color: green;
3
display: none;
4
border-radius: 5px;
5
padding: 5px 0px 5px 5px;
6
color: #fff;
7
}
8
9
.output:hover {
10
background: black;
11
}
12
13
.output {
14
background: #3b4fe4;
15
color: #fff;
16
border: 3px solid #fff;
17
padding: 10px;
18
width: 150px;
19
text-align: center;
20
cursor: pointer;
21
}
22
23
.out {
24
background: green;
25
color: #fff;
26
}
JavaScript
1
16
16
1
<div class="output">Click me</div>
2
<div class="out">
3
This is first output
4
</div>
5
<div class="output">Click me</div>
6
<div class="out">
7
This is second output
8
</div>
9
<div class="output">Click me</div>
10
<div class="out">
11
This is third output
12
</div>
13
<div class="output">Click me</div>
14
<div class="out">
15
This is Fourth output
16
</div>