2

我有一个包含 26 个问题的表格,所有这些问题都有单选按钮组作为用户的答案选择(它计算给定财产上特定入侵植物物种的风险因素)。最后,将每个单选组中的选定值相加。

复杂之处在于,用户可以选择填写 5 种不同入侵植物物种的问卷;换句话说,我有 26 行和 5 列,最后我需要分别计算每一列。我已经通过使用 getElementsByClassName 完成了这项工作,它在 Firefox 中就像一个魅力,但在 IE 中却没有。不幸的是,我为之服务的客户将 IE 作为他们的用户标准。我尝试了一些在网上发布的通用 getElementsByClassName 函数,但它们似乎不起作用;我一直在页面上收到错误消息。

Firefox中成功的功能是这样的:

function addSpecies1(frm, resultHolder)
{
var elems = frm.getElementsByClassName('species1'),
calculator = elems.length,
total = 0;
for(var i=0; i<calculator; i++)
if(elems[i].type=='radio' && elems[i].checked  && !isNaN(elems[i].value))
total+=parseFloat(elems[i].value);
resultHolder.value=total;
}

可能有一个非常简单的答案(我是一个等级初学者!)但我已经把头撞在墙上一个多星期了......

4

1 回答 1

1

最好和最简单的做法是使用jquery。它会处理大多数跨浏览器问题。您可以使用 .getElementsByClassName 进行操作$('.species1')

如果您不想使用 jquery,可以使用以下代码片段

var inputs = document.getElementsByTagName('INPUT');
var inputlen = inputs.length;
var result = new Array();

for(var i=0;i<inputlen;i++)
{
   if( inputs[i].className == 'species1' && input.checked)
      result.push(inputs[i]);
}

结果包含所有选中的复选框,类为 species1。你也可以使用循环来检查那些

于 2010-10-01T18:33:10.483 回答