JavaScript JavaScript and the DOM Traversing the DOM Sibling Traversal

Aaron Lipinski
Aaron Lipinski
Full Stack JavaScript Techdegree Student 10,041 Points

Am I thinking about this Correctly

I'm getting bummer: One or more of the buttons do not affect their previous sibling paragraphs.

Am I on the right track or way off?

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


list.addEventListener('click', function(e) {
  if (e.target.tagName == 'BUTTON') {
    let button = event.target.parentNode;
    let prevP = button.previousElementSibling;
    let p = button.parentNode;
    if(p){
      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>

1 Answer

KRIS NIKOLAISEN
KRIS NIKOLAISEN
54,288 Points

If e.target.tagName = "BUTTON" then e.target is the button. The paragraph you change is the immediate previous sibling of the button so for the challenge you will change the class for e.target.previousElementSibling.