Javascript 将类元素拉入数组中,然后对它们求和

Javascript 将类元素拉入数组中,然后对它们求和,javascript,Javascript,我对Javascript非常陌生,需要一些帮助才能做到这一点。这些类将从不同的表中提取(如下所示)。我只需要一种方法,从每个类中提取所有单元格值,并将它们相加。所以一级=1234+1234。我不知道document.getElementByClassName是否有效?任何帮助都将不胜感激 <table> <tbody> <tr><td class="classone">1234</td></tr> <tr&

我对Javascript非常陌生,需要一些帮助才能做到这一点。这些类将从不同的表中提取(如下所示)。我只需要一种方法,从每个类中提取所有单元格值,并将它们相加。所以一级=1234+1234。我不知道document.getElementByClassName是否有效?任何帮助都将不胜感激

<table>
<tbody>
   <tr><td class="classone">1234</td></tr>
   <tr><td class="classtwo">1234</td></tr>
   <tr><td class="classthree">1234</td></tr>
</tbody>
</table>


<table>
<tbody>
   <tr><td class="classone">1234</td></tr>
   <tr><td class="classtwo">1234</td></tr>
   <tr><td class="classthree">1234</td></tr>
</tbody>
</table>

1234
1234
1234
1234
1234
1234

文档。GetElementsByCassName在IE(8及以下)中除外

对于IE8支持,您可以使用querySelectorAll:

function sumByClass(classname){
    var els;
    var i, sum = 0;

    if(document.getElementsByClassName) // Modern
        els = document.getElementsByClassName(classname);
    else if(document.querySelectorAll) // IE 8
        els = document.querySelectorAll((' ' + classname).replace(/ +/g, '.'));

    for(i = els.length; i--;)
        sum += parseInt(els[i].innerText || els.textContent, 10)

    return sum;
}

对于IE7和IE6,您可以查看我的答案,以定义一个函数,该函数按类名获取元素,在IE8+中返回节点列表,但在IE7及以下版本中返回数组。对于跨浏览器解决方案,您只需使用该列表/数组对值求和,方法与我在上面所做的相同:

function sumByClass(classname){
    var els = GEBCN(classname);
    var i, sum = 0;

    for(i = els.length; i--;)
        sum += parseInt(els[i].innerText || els.textContent, 10)

    return sum;
}

当然,您也可以使用类似的框架/库来简化这一过程。

如果您是JavaScript新手,我会看看jQuery JavaScript库。您必须使用以下方法将其添加到所有html页面:

<script type="text/javascript" https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

您是在使用纯javascript,还是在jquery之类的帮助下。我只需要它工作:)如果类名有多个类,比如
addByClass('classone-classtwo'),那就不行了4936
。否则,它可以正常工作,但是如果需要多个类,那么
getElementsByClassName
的工作方式就是将
“+classname
更改为
(''+classname.)。替换(/+//g'.')
使其
addByClass('classone-class2')==4936
,那么脚本行是否会出现在页面的开头?是的,并确保它与任何其他JavaScript行相关,以便您可以在链接到的其他外部JavaScript文件中使用它。
<script type="text/javascript" https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
function addByClass(classname) {
    var sum = 0;
    $.each($(' ' + classname).replace(/ +/g, '.'), function(i, item) {
        sum += parseInt($(item).html());
    });
    return sum;
}