HTML Preparation code:
x
 
1
<html>
2
3
<body>
4
    <div id='test'>
5
        <div class='item' id='a' name='a'>a</div>
6
        <div class='item' id='b' name='b'>b</div>
7
        <div class='item' id='c' name='c'>c</div>
8
    </div>
9
</body>
10
11
</html>
Script Preparation code:
 
var parent = document.getElementById('test');
var store = [];
parent.childNodes.forEach(function (node) {
  if ( node.nodeName !== '#text') {
  store.push( { name: node.attributes.name.value } );
  }
});
Tests:
  • fastest iter childelements + setAttribute

     
    let elem = parent.firstElementChild;
    do {
      elem.setAttribute('name','d');
    } while (elem = elem.nextElementSibling)
  • Array item

     
    for (let i = 0; i < store.length; i++) {
      store[i].name = 'd';
    }
  • fastest iter childelements + attributes

     
    let elem = parent.firstElementChild;
    do {
      elem.attributes.name.value = 'd';
    } while (elem = elem.nextElementSibling)
  • fastest iter childelements + nodeValue

     
    let elem = parent.firstElementChild;
    do {
      elem.nodeValue = 'd';
    } while (elem = elem.nextElementSibling)
  • fastest iter childelements + textContent

     
    let elem = parent.firstElementChild;
    do {
      elem.textContent = 'd';
    } while (elem = elem.nextElementSibling)
  • Array object

     
    for (let i = 0; i < store.length; i++) {
      store[i] = {name:'d'};
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    fastest iter childelements + setAttribute
    Array item
    fastest iter childelements + attributes
    fastest iter childelements + nodeValue
    fastest iter childelements + textContent
    Array object

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Chrome 95 on Linux
View result in a separate tab
Test name Executions per second
fastest iter childelements + setAttribute 513185.2 Ops/sec
Array item 2043916.4 Ops/sec
fastest iter childelements + attributes 559170.4 Ops/sec
fastest iter childelements + nodeValue 2433263.2 Ops/sec
fastest iter childelements + textContent 1598468.4 Ops/sec
Array object 1988372.6 Ops/sec