Исходный набор - перебирается правильно
<div id="id_1">Див 1</div>
<div id="id_2">Див 2</div>
<script>
[].forEach.call(document.querySelectorAll("#id_1,#id_2"), function(elem,i) {
elem.innerText = elem.innerText + (i+1);
});
</script>
Переставленный - перебирается НЕправильно
<div id="id_2">Див 2</div>
<div id="id_1">Див 1</div>
<script>
[].forEach.call(document.querySelectorAll("#id_1,#id_2"), function(elem,i) {
elem.innerText = elem.innerText + (i+1);
});
</script>
Переставленный с сортировкой - перебирается правильно
<div id="id_2">Див 2</div>
<div id="id_1">Див 1</div>
<script>
Array.from(document.querySelectorAll("#id_1,#id_2")).sort(function (a, b) {
if (a.id > b.id) {
return 1;
}
if (a.id < b.id) {
return -1;
}
return 0;
}).forEach( function(elem,i) {
elem.innerText = elem.innerText + (i+1);
});
</script>