Javascript: Child Nodes
Get all of the child nodes based upon an initial node using recursion.
by ronpearl
HTML
<ul id="sortable" class="ui-sortable">
<li class="ui-state-default">
<img id="aImg" alt="sortable image" src="images/a.jpg" />
</li>
<li class="ui-state-default">
<img id="bImg" alt="sortable image" src="images/b.jpg" />
</li>
<li class="ui-state-default">
<img id="cImg" alt="sortable image" src="images/c.jpg" />
</li>
</ul>
<div id="result"></div>
JavaScript
let images = [];
const processChildrenNodes = (node, getNodeChildren) => {
const nodeChildren = [...node.childNodes];
for (const thisNode of nodeChildren) {
if (getNodeChildren)
processChildrenNodes(thisNode, true);
if (thisNode.nodeName === 'IMG') {
images.push(
thisNode.getAttribute('src')
.replace('.jpg', '')
.split('/')
.filter(item => item !== 'images')
);
}
}
};
processChildrenNodes(document.getElementById('sortable'), true);
document.getElementById('result').textContent = images.toString();