JavaScript JavaScript and the DOM Traversing the DOM Sibling Traversal

michael edmondson
michael edmondson
3,369 Points

where am i going wrong in my code?

The <ul> stored in the variable list has a click event listener that targets each <button> in the list. Complete the code to add a class of highlight to a <p> element that's an immediate previous sibling of the button being clicked.

did i have to add the highlight class in the index html? if not should i remove it? or is there anything else wrong with my code that im not seeing?

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

list.addEventListener('click', function(e) {
  if (e.target.tagName == 'BUTTON') {
  if(e.target.className == 'highlight'){
    let li = e.target.parentNode;
    let prevLi = li.previousElementSibling;
    let list = li.parentNode;
  }  
  }
});
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 class = "hightlight">Element Selection</p><button>Highlight</button></li>
                <li><p class = "highlight">Events</p><button>Highlight</button></li>
                <li><p class = "highlight">Event Listening</p><button>Highlight</button></li>
                <li><p class = "highLight">DOM Traversal</p><button>Highlight</button></li>
            </ul>
        </section>
        <script src="app.js"></script>
    </body>
</html>
Steven Parker
Steven Parker
177,845 Points

This looks like a duplicate of your previous question. See the answers(s) posted there.

You can delete this duplicate while it has no answers. Click the little rectangle with the 3 dots to reveal the option.