javascript如果Else块跳转到Else,即使条件标记为真

时间:2013-04-25 19:29:43

标签: javascript

我正在尝试根据复选框中的true或false值执行操作。使用If:Else语句我测试复选框值是否为“true”,即使复选框值标记为“true”,它也会进入我的语句的Else部分。

有人可以向我解释一下这个原因吗?

        var CheckedBoxs = $(stepTitle + " input:checkbox");
        for (var val in CheckedBoxs) {
            if (val.toString() === "length") {
                break;
            } //End IF
            if (CheckedBoxs[val].value === "true") {
                OneUp = parseInt(val) + 1;
                var PriceTag = "  -$";
                PriceTag += HiddenInput[OneUp].name.substring(HiddenInput[OneUp].name.indexOf(":") + 1, HiddenInput[OneUp].name.length);
                Lbls[val].innerHTML = Lbls[val].innerHTML + '<span class="PriceChange">' + PriceTag + "</span>";
            } else {
                OneUp = parseInt(val) + 1;
                var PriceTag = "  +$";
                PriceTag += HiddenInput[OneUp].name.substring(HiddenInput[OneUp].name.indexOf(":") + 1, HiddenInput[OneUp].name.length);
                Lbls[val].innerHTML = Lbls[val].innerHTML + '<span class="PriceChange">' + PriceTag + "</span>";
            }//End If
        }//End For

我见过许多与If:Else statments相关的问题,但是找不到一个隐藏了复选框的问题,如果这是重复的话,道歉。

1 个答案:

答案 0 :(得分:3)

两件事

第一

for (var val in CheckedBoxs) {

这不是如何循环数组;仅在对象文字的属性上使用该循环。

第二

if (CheckedBoxs[val].value === "true") {

应该是

if (CheckedBoxs[val].checked) {

Edit, fiddle