我正在尝试根据复选框中的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相关的问题,但是找不到一个隐藏了复选框的问题,如果这是重复的话,道歉。
答案 0 :(得分:3)
两件事
第一
for (var val in CheckedBoxs) {
这不是如何循环数组;仅在对象文字的属性上使用该循环。
第二
if (CheckedBoxs[val].value === "true") {
应该是
if (CheckedBoxs[val].checked) {