
Sougata Ghosh
6,023 PointsDom manipulating
How do i do this
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';
}
}
});
<!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

Liam Clarke
Treehouse Moderator 17,347 PointsIn this challenge you need to change the false with the condition of:
if the entered number is equal to the iterated number of list items, set the weight to bold.
So that is:
if the index is equal to the list item number, set the weight to bold
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); // This is our input field
for (let i = 0; i < laws.length; i += 1) { // This is the iteration through the list items
let law = laws[i];
if ( i === index ) { // If our input field is equal to the iterated list item
law.style.fontWeight = 'bold'; // Set the weight bold
} else {
law.style.fontWeight = 'normal';
}
}
});

Sougata Ghosh
6,023 PointsThank you sir