如何在条件下使用计数器变量?

时间:2011-05-10 08:45:44

标签: javascript jquery html

我想在IF条件下使用计数器变量..我试过但它不工作。请帮我正确的代码.. 代码是:

var ChForAtn=0;
if(arrayAtnd[ChForAtn]=="Name")
{                
    alert("Name");
    if(document.forms[7].ckbx'+ChForAtn+'.checked==true)
    {
        alert('Name added and checked also');
    }
    ChForAtn++;
}

2 个答案:

答案 0 :(得分:1)

var ChForAtn=0;  <--- Variable declared as 0
if(arrayAtnd[ChForAtn]=="Name")
{                
    alert("Name");
    if(document.forms[7].ckbx'+ChForAtn+'.checked==true) <-- You have your concatenation wrong.
    {
        alert('Name added and checked also');
    }
    ChForAtn++; <--- Variable incremented
}

首先,你应该发布你的循环。您发布的代码段不包含循环。

此代码中唯一增加的变量将重置在代码的顶部,这对此片段没有多大意义。

修改

以下内容无效,因为您的连接已混淆

document.forms[7].ckbx'+ChForAtn+'.checked==true

我对JS不是很好,但如果你想在PHP中创建一个变量变量,你必须使用像eval()这样的东西。我知道您可以通过window[]访问它,但在这种情况下可能无法实现。

<击> eval()

的解决方案
if (eval('document.forms[7].ckbx' + ChForAtn + '.checked') == true) {
  //code
}

<击>

注意有充分的理由为什么不应该使用eval() 。有关详细信息,请查看此处:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval#Don.27t_use_eval.21

但是,考虑到你的用例,我真的没有办法解决它。我欢迎其他海报的其他建议。

<强> EDIT2

正如@nickf在评论中指出的那样,你可以通过调用

来做同样的事情
if (document.forms[7]['ckbx' + ChForAtn].checked == true) {
   //code
}

其他人的警示故事,请勿在可避免的地方使用eval():)

答案 1 :(得分:-1)

在if条件中使用for循环。