According its w3schools page (everyone's favorite resource, I know), the .children
property returns
A live HTMLCollection object, representing a collection of element nodes
This object can be looped over as if it were an array like so:
var elements = document.getElementById('test').children;
for (var i=0; i < elements.length; i++) {
console.log(elements[i]);
}
<div id="test">
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
</div>
However attempting to use the .map
function throws an error:
var elements = document.getElementById('test').children;
var x = elements.map((element, index) => {
console.log(element);
});
<div id="test">
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
</div>
Is there a better way to get an array of child DOM elements, or do I have to loop through the object and manually create an array in order to use array methods like .map()
? Note, I do not want to use jQuery. Thanks in advance.