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

yousif alyousif
yousif alyousif
2,322 Points

can some one please explain what do they need in this task?

been trying to understand the task but i did not know what do they need can some one please explain what they need ?? the task says: There are three list items in the index.html file. We want to be able to enter a 0, 1 or 2 in the text field to embolden the list item with the corresponding index. Can you figure out what condition to put into the if statement to make this code work?

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
229,732 Points

Here's a hint:

You need to replace "false" with a comparison expression. And what you will compare is the loop index with the number that the user put in the box (which has already been conveniently converted to a value in the variable "index").

yousif alyousif
yousif alyousif
2,322 Points

sadly I still did not understand what you mean!! do you mean that the number they enter in the box should the corresponding li bold ?!

Steven Parker
Steven Parker
229,732 Points

Right, the user is going to put a number in the text field for the one to make bold. But all you need to do in the code is replace "false". So to make it work, you just need to compare the loop index ("i") with the user's number ("index").

Thanks Steven, I needed that! Sometimes you make a simple solution more complicated than it needs to be :)

yousif alyousif
yousif alyousif
2,322 Points

thanks a lot for your time and nice explanation