JavaScript JavaScript and the DOM Traversing the DOM Sibling Traversal

andres ponton
andres ponton
10,350 Points

I dont know how to solve this challenge

I dont understant how to approach this, what is the highlight property, this is what i have so far

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

list.addEventListener('click', function(e) {
  if (e.target.tagName == 'BUTTON') {
   let p=e.target.parentNode;
        let button=p.previousElementSibling;
        button.idontknow(p);

  }
});
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>

2 Answers

Steven Parker
Steven Parker
171,314 Points

There's no "highlight" property, what the challenge wants you to do is "to add a class of highlight". So "highlight" is just a literal class name.

Also, the paragraph is a peer element to the button, so you won't need to access a parent element to get to it.


Update: Your second try is close, but the paragraph they want you to change is the sibling of the button ("e.target") instead of the one that is a sibling of the "list".

andres ponton
andres ponton
10,350 Points

thanks for your response, this is what ive got, but it doesnot work

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

list.addEventListener('click', function(e){ if (e.target.tagName == 'BUTTON') { var p=list.previousElementSibling; p.className='highlight';

} });