节点列表操作

NodeList operations

不幸的是,我得到了一组具有整数值的 div(总是)只有 class(无法添加 id,因为它们是由我不能乱用的其他应用程序在循环中生成的)

<div class="aaposition">3</div>
<div class="aaposition">4</div>
<div class="aaposition">5</div>
<div class="bbposition">30</div>
<div class="bbposition">30</div>
<div class="bbposition">30</div>

所以我正在创建两个节点列表(很好,两个列表都有准确的长度)。

aalist = document.getElementByClassName('aaposition');
bblist = document.getElementByClassName('bbposition');

我需要做的是将 aaitem[i] 与 bbitem[i] 相乘的结果相加并显示在某处

sumlist = 0;
for (i = 0; i < aalist.length; i++) {
   sumlist += aalist[i] * bblist[i];
}
showdiv.innerHTML = sumlist;

但我不知道如何从节点列表中选择这些值,我该如何选择我感兴趣的值? 是 .innerHTML.value 还是什么? 我找到的只是样式示例(.style.background ... 等)。

我还需要解析成整数吗?我需要将 NodeList 转换为数组吗?

您需要使用 document.getElementsByClassName 并修复 .length 的拼写错误 您还需要调用节点 .innerHTML...

var result = document.getElementById('result'),
    aalist = document.getElementsByClassName('aaposition'),
    bblist = document.getElementsByClassName('bbposition'),
    sumlist = 0;

for(var i=0; i<aalist.length; i++) {
   sumlist += aalist[i].innerHTML * bblist[i].innerHTML;
}

result.innerHTML = sumlist;

Working jsfiddle