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! While you're at it, check out some resources Treehouse students have shared here.

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

What is supposed to go in the condition for the if statement for DOM Scripting by Example?

I can't figure out what is supposed to be put in the if statement condition.

app.js
I don't understand what I am meant to but in the condition for the if statement.

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 (index === law) {

           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
231,269 Points

You just need to compare the index with the loop variable (they are both numbers).

I've previewed the following code and it seems to be working, although it is showing up with the following message: Bummer: It looks like you didn't update the test condition of the if statement correctly

Please could some help me out. Thanks! :)

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 (indexText.value >= 0 && indexText.value <=2 ) {

       law.style.fontWeight = 'bold';
   } else {
       law.style.fontWeight = 'normal';
   }
}

});

Steven Parker
Steven Parker
231,269 Points

Instead of asking a question as an "answer" to a different one, always start a fresh new question.

But here's a couple of hints: the values you need to compare already exist in the code as numbers, and you need only look for a match and not a range.