我对这些东西很陌生 - 我有一些代码可行,但不是很优雅:
function cost(){
var runningcost=0
if (document.getElementById('field_280_0').checked==true)
{
runningcost=100;
}
else
{
if (document.getElementById('field_281_0').checked==true)
{
runningcost=runningcost+12
}
if (document.getElementById('field_282_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_283_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_284_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_285_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_286_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_287_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_288_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_289_0').checked==true)
{
runningcost=runningcost+12
}if (document.getElementById('field_290_0').checked==true)
{
runningcost=runningcost+12
}
}if (document.getElementById('field_292_0').checked==true)
{
runningcost=runningcost+55
}
document.getElementById('[[Total cost#id]]').value=runningcost;
}
我正在尝试使用for循环去除所有if行:
for (var i=281;i<292;i++)
{
var field = i.toString();
if (document.getElementById('field_'+ field +'_0').checked==true)
{
runningcost=runningcost+12
}
}
我已尝试过很多关于该主题的变体,但我总是被getElementById视为null。
我做错了什么?任何指针都会很棒。
答案 0 :(得分:0)
尝试删除var field = i.toString();
我尝试了一个快速的fiddle,看看它是否有效,而且确实如此。
HTML:
<div id="field_285_0"></div>
使用Javascript:
for (var i=281;i<292;i++)
{
if(document.getElementById('field_'+ i +'_0')) {
$('body').append('exsists: '+ i ); //<-- Just added this to check my if statement
};
}
答案 1 :(得分:0)
我认为问题出在
for(var i = 281; i <292; i ++)
它现在可以用作
for(var i = 280; i <291; i ++)
我认为我忘记了在每次传球之前我被添加到了(不知道在这里调用它的技术方法),所以它需要在所需的字段数下面开始1,如果这是有道理的。< / p>
它似乎可以使用或不使用var field = i.toString();
- 如果不需要,我会删除它以保持代码清洁。
感谢大家的评论。