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

michael edmondson
michael edmondson
3,247 Points

kinda lost here anybody can help me with this?

not sure what condition to put here

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>

1 Answer

Owen Bell
Owen Bell
8,000 Points

The challenge here is to find a way to embolden the list item with an index corresponding to the user's text input, so it makes sense that you would need to compare the variables that hold those values. In this case, the iterator variable i refers to the index in the array of list items that is currently being accessed. Compare this with the integer form of the user's text entry and you're good to go!