JavaScript JavaScript and the DOM Traversing the DOM Sibling Traversal

Muhammad Raza
Muhammad Raza
3,678 Points

Can somebody Please look at my code for this challenge I cant figure out what missing?

var list = document.getElementsByTagName('ul')[0];

list.addEventListener('click', function(e) { if (e.target.tagName == 'BUTTON') { let li = e.target.parentNode; let prevLi = li.previousElementSibling; prevLi.className = 'highlight';

} });

app.js
var list = document.getElementsByTagName('ul')[0];

list.addEventListener('click', function(e) {
  if (e.target.tagName == 'BUTTON') {
    let li = e.target.parentNode;
    let prevLi = li.previousElementSibling;
    prevLi.className = 'highlight';

  }
});
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and the DOM</title>
    </head>
    <link rel="stylesheet" href="style.css" />
    <body>
        <section>
            <h1>Making a Webpage Interactive</h1>
            <p>Things to Learn</p>
            <ul>
                <li><p>Element Selection</p><button>Highlight</button></li>
                <li><p>Events</p><button>Highlight</button></li>
                <li><p>Event Listening</p><button>Highlight</button></li>
                <li><p>DOM Traversal</p><button>Highlight</button></li>
            </ul>
        </section>
        <script src="app.js"></script>
    </body>
</html>
Stivan Radev
Stivan Radev
6,998 Points

if you look at the code here, this already selects the li element

var list = document.getElementsByTagName('ul')[0];

so you don't have to select it, go ahead and remove this from your code

let li = e.target.parentNode;

Now all you need to do is instead of using li.*****

li.previousElementSibling

// use e.target.****
e.target.previousElementSibling

2 Answers

Stivan Radev
Stivan Radev
6,998 Points

Final look:

var list = document.getElementsByTagName('ul')[0];

list.addEventListener('click', function(e) {
  if (e.target.tagName == 'BUTTON') {
    e.target.previousElementSibling.className = 'highlight';
  }
});
Muhammad Raza
Muhammad Raza
3,678 Points

got the answer below thanks