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!

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 JavaScript and the DOM (Retiring) Traversing the DOM Child Traversal

daniel wilson
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
daniel wilson
Front End Web Development Techdegree Graduate 13,875 Points

Next, change the color of each child paragraph to blue. (Remember: paragraphs is a collection of elements, so you'll fi

Next, change the color of each child paragraph to blue.

(Remember: paragraphs is a collection of elements, so you'll first need to use a loop to access each element in the collection.)

am i getting close? lol

app.js
var section = document.querySelector('section');
var paragraphs = section.children;
if (paragraphs.children) {
paragraphs.style.color = 'blue';
}
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>Child Traversal</title>
    </head>
    <body>
        <section>
            <p>This is the first paragraph</p>
            <p>This is a slightly longer, second paragraph</p>
            <p>Shorter, last paragraph</p>
        </section>
        <footer>
            <p>&copy; 2019</p> 
        </footer>
        <script src="app.js"></script>
    </body>
</html>

3 Answers

Tadjiev Codes
Tadjiev Codes
9,626 Points
var section = document.querySelector('section');
var paragraphs = section.children;

for (var i = 0; i < paragraphs.length; i += 1) {
   paragraphs[i].style.color = "blue";
}

You need to loop through the paragraphs meaning all the children of the section element and then only assign the blue color. This should work. Hope this helps)))

Alexandra Velez
seal-mask
.a{fill-rule:evenodd;}techdegree
Alexandra Velez
Front End Web Development Techdegree Student 9,313 Points

I got stuck on this challenge.

Initially, I wrote,

for (var i = 0; i < paragraphs.length; i += 1) { paragraphs[i].style.color = "blue"; }

Why did you include [i]? I thought it implicitly JS knows to loop through all paragraph elements.

Tadjiev Codes - Thank you! All I was missing was the [i]!

Hi, Alexandra, the [i] in paragraph provides the index for the paragraph to modify the color, so [0] would modify the first pararaph, while the [i] woudl go (loop) through all the paragraphs and provide them with the color property