It is my first time using JavaScript. I am trying to make a button where every time visitors click, it’ll show another extra line of text. I often get an error on my JavaScript, and I’m not sure how to fix it. Thank you so much!
HTML;
JavaScript
x
23
23
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
</head>
5
<body>
6
<div class="container">
7
<div class="text">
8
<div class="one hide">
9
One
10
</div>
11
<div class="two hide">
12
Two
13
</div>
14
<div class="three hide">
15
Three
16
</div>
17
</div>
18
<a href="#" class="button" id="hr1"></a>
19
</div>
20
</body>
21
<script src="script.js"></script>
22
</html>
23
JS;
JavaScript
1
19
19
1
const text = document.querySelector('.text');
2
const hide = document.querySelector('.hide');
3
const one = document.querySelector('.one');
4
const two = document.querySelector('.two');
5
var hr1 = document.getElementById('hr1');
6
var hr2 = document.getELementById('hr2');
7
var hr3 = document.getElementById('hr3');
8
9
hr1.addEventListener('click', () => {
10
one.classList.remove('hide');
11
hr1.id = "hr2";
12
})
13
14
// I often get an error on hr2.addEventListener
15
hr2.addEventListener('click', () => {
16
two.classList.remove('hide');
17
hr2.id = "hr3";
18
})
19
Advertisement
Answer
Your code throws error because you are trying to set hr2 and hr3 when they are not exist. You need to set hr2 and hr3 variables after setting id’s of them like below:
JavaScript
1
3
1
hr1.id = "hr2";
2
hr2= document.getElementById('hr2');
3
JavaScript
1
21
21
1
const text = document.querySelector('.text');
2
const hide = document.querySelector('.hide');
3
const one = document.querySelector('.one');
4
const two = document.querySelector('.two');
5
var hr1 = document.getElementById('hr1');
6
var hr2 = null;
7
var hr3 = null;
8
hr1.addEventListener('click', () => {
9
//one.classList.remove('hide');
10
hr1.id = "hr2";
11
hr2= document.getElementById('hr2');
12
console.log(hr2);
13
hr2.addEventListener('click', () => {
14
two.classList.remove('hide');
15
hr2.id = "hr3";
16
hr3 = document.getElementById('hr3');
17
console.log(hr3);
18
})
19
})
20
21
// I often get an error on hr2.addEventListener
JavaScript
1
14
14
1
<div class="container">
2
<div class="text">
3
<div class="one hide">
4
One
5
</div>
6
<div class="two hide">
7
Two
8
</div>
9
<div class="three hide">
10
Three
11
</div>
12
</div>
13
<a href="#" class="button" id="hr1">clickme</a>
14
</div>