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

Walter Young
PLUS
Walter Young
Courses Plus Student 3,523 Points

How do I embolden one specific list item?

Maybe I am reading this question wrong but I am completely stumped as to what condition to change (false) to so only one element is made bold without adjusting any other code.

The original question:

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>

3 Answers

MacKenzie Santiago
MacKenzie Santiago
5,137 Points

None of those answers made sense.

Kindergarten terms or laymans terms, please.

No clever speak, just simple dumbed down explanation, please.

Steven Parker
Steven Parker
229,644 Points

The code to make the item bold is already there, and so is the code to convert the input into a number (in the variable "index").

So all you need to do is write an expression in the "if" that compares the "index" to the loop variable.

Ann Nguyen
Ann Nguyen
9,319 Points

laws is each li, and you know that when it selects a group, it will return as an array. So you want to compare the number of the array index against as it is looping through the laws.

laws[index] compared against what in order to bold the corresponding line?

Steven Parker
Steven Parker
229,644 Points

You won't need "laws" in the comparison, you'll only be comparing the numeric index values.