return elements that match specified CSS selector(s)

How to iterate over NodeList returned by querySelectorAll()?

Answers:

  • To iterate over a NodeList returned by querySelectorAll(), you can use several methods. Here are a few common ones:

    1. Using forEach()

    If you're working in a modern environment (most browsers support this), you can convert the NodeList to an array and use the forEach() method to iterate over it:

    const elements = document.querySelectorAll('selector');
    
    // Convert NodeList to Array and use forEach
    elements.forEach(element => {
        console.log(element); // Do something with each element
    });
    

    2. Using a for loop

    You can also use a traditional for loop to iterate through the NodeList:

    const elements = document.querySelectorAll('selector');
    
    for (let i = 0; i < elements.length; i++) {
        console.log(elements[i]); // Access each element
    }
    

    3. Using the for...of loop

    The for...of loop allows you to iterate over iterable objects like NodeLists directly:

    const elements = document.querySelectorAll('selector');
    
    for (const element of elements) {
        console.log(element); // Access each element
    }
    

    4. Converting to an Array

    If you prefer working with methods provided by arrays, you can convert the NodeList to an array using Array.from() or the spread operator, and then use any array method:

    Using Array.from()

    const elements = document.querySelectorAll('selector');
    const elementsArray = Array.from(elements);
    
    elementsArray.forEach(element => {
        console.log(element);
    });
    

    Using the Spread Operator

    const elements = document.querySelectorAll('selector');
    const elementsArray = [...elements];
    
    elementsArray.forEach(element => {
        console.log(element);
    });
    

    Conclusion

    You can choose any of these methods based on your preference or the specific requirements of your project. All of them effectively allow you to iterate over the elements selected with querySelectorAll().