Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript DOM Scripting By Example Editing and Filtering Names Fix DOM Manipulation Code

I cannot seem to figure out the solution to this challenge. Please help me, Thank You!

Replacing false with a statement.

I have tried button.value === laws[I], index.value === laws[I], the variable law, everything, but I am stuck. All help will be appreciated.

app.js
const laws = document.getElementsByTagName('li');
const indexText = document.getElementById('boldIndex');
const button = document.getElementById('embolden');

button.addEventListener('click', (e) => {
    const index = parseInt(indexText.value, 10);

    for (let i = 0; i < laws.length; i += 1) {
       let law = laws[i];

       // replace 'false' with a correct test condition on the line below
       if (false) {

           law.style.fontWeight = 'bold';
       } else {
           law.style.fontWeight = 'normal';
       }
    }
});
index.html
<!DOCTYPE html>
<html>
<head>
  <title>Newton's Laws</title>
</head>
<body>
  <h1>Newton's Laws of Motion</h1>
  <ul>
    <li>An object in motion tends to stay in motion, unless acted on by an outside force.</li>
    <li>Acceleration is dependent on the forces acting upon an object and the mass of the object.</li>
    <li>For every action, there is an equal and opposite reaction.</li>
  </ul>
  <input type="text" id="boldIndex">
  <button id="embolden">Embolden</button>
  <script src="app.js"></script>
</body>
</html>

2 Answers

Steven Parker
Steven Parker
224,872 Points

Here's a few hints:

  • laws are elements, you wouldn't compare them with a number
  • the code has already converted the value for you and stored it in index
  • you may want to compare the selected number to the loop variable
Steven Parker
Steven Parker
224,872 Points

You definitely don't want to compare anything directly to the elements. All you need to do here is compare the numeric value (already stored in index) with the loop variable (i).

I'm sorry but I'm still lost. I see that the button still works even without a condition and it emboldens all the 3 list items. I have tried "indexText.value === laws[I]". Still not it. I am not sure where to go from here. And I feel like the answer is probably an easy fix but I just can't figure it out

Okay, I get it now. My mistake was using the indexText variable and completely ignoring index. I appreciate your assistance on this.