节点列表操作

NodeList operations

本文关键字:操作 列表 节点      更新时间:2023-09-26

不幸的是,我得到了一组带有整数值的div(总是)只有类(无法添加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...等)。

我还需要解析成整数吗?我需要将节点列表转换为数组吗?

您需要使用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;

工作中的 jsfiddle