JavaScript JavaScript and the DOM Traversing the DOM Sibling Traversal

andres ponton
andres ponton
10,350 Points

help with this challenge please

help with this previousElementSibiling

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

list.addEventListener('click', function(e){
  if (e.target.tagName == 'BUTTON') {
    var p=list.previousElementSibling;
    p.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>
Steven Parker
Steven Parker
171,091 Points

This looks like a duplicate of your previous question. Didn't you resolve it using that last hint?

1 Answer

Emmanuel C
Emmanuel C
7,620 Points

The e.target is the button element, so you can call the previousElementSibling on that in order to get that "p" element

list.addEventListener('click', function(e){
  if (e.target.tagName == 'BUTTON') {
    var button = e.target;
    var pElem = button.previousElementSibling;

    pElem.className = "highlight";
  }
});