守则:
var lstInstanceIds = getData.lstInstanceIds.split(',');
for(var i=0; i<lstInstanceIds.length; i++) {
var value = lstInstanceIds[i];
$('input[value=' + value + ']').attr('checked','checked');
}
所以我正在做的就是循环一个列表,并将值设置为已检查的值设置在哪里。
这适用于Chrome,Firefox,IE7 / 8,Safari。 但不是在IE6中......
答案 0 :(得分:4)
改为使用attr('checked', true)
。
答案 1 :(得分:1)
IETester并不是真正的IE6环境的准确表示。主要是由于使用本地机器而不是IE6的javascript引擎。我在IE6中使用IETester遇到了许多工作和看起来很棒的页面,但是当在Windows XP环境中使用真正的IE6时,它会非常糟糕。我的建议是在WinXP SP3上获得IE6的免费Virtual PC映像。使用jQuery查找真正的错误非常有用(尽管调试仍然很麻烦)。
答案 2 :(得分:0)
我能够根据你在这里提到的内容设置一个基本的例子(希望我不会太离谱),并且它在IETester中用6个实例进行测试。
<input type="checkbox" id="chk1" value="chk1" />
<input type="checkbox" id="chk2" value="chk2" />
<input type="checkbox" id="chk3" value="chk3" />
<input type="checkbox" id="chk4" value="chk4" />
<input type="checkbox" id="chk5" value="chk5" />
var ids = "chk1,chk3,chk5";
var lstInstanceIds = ids.split(',');
for (var i=0; i<lstInstanceIds.length; i++) {
var value = lstInstanceIds[i];
$('input[value=' + value + ']').attr('checked','checked');
}
答案 3 :(得分:0)
var lstInstanceIds = getData.lstInstanceIds.split(',');
for(var i=0; i<lstInstanceIds.length; i++) {
var value = lstInstanceIds[i];
var checkbox = $('input[value=' + value + ']').get(0);
if(checkbox.checked == false)
checkbox.click();
}
检查是否选中了复选框。如果没有,它会点击它,从而检查它。应该支持所有浏览器!