我有一个复选框列表

<input type="checkbox" name="box1" id="box1" value="x1">X1
<input type="checkbox" name="box1" id="box1" value="x2">X2
<input type="checkbox" name="box1" id="box1" value="x3">X3

复选框的名称和复选框的数量是动态的。

要检索所选复选框的值,我正在使用以下功能
var urls = "";
var values = "";
var fldname = "box"+i;
$('#'+fldname+':checked').each(function() {
values += $(this).val() +"|";
});

假设我选择了X1和X3,那么在Mozilla中,“values”的值是

X1 | X3

在IE中,它只是X1。

请帮忙。

最佳答案

我不知道您的代码在Mozilla中的工作方式,因为您的语法错误。

您已为所有复选框指定了名称,但正在使用ID查询它们

你需要类似的东西

$('[name="' + fldname  + '"]:checked');

这基本上是查找具有给定名称的元素。您可以使其更具体
$('input[name="' + fldname  + '"]:checkbox:checked');

这是一个不使用迭代的示例:http://jsbin.com/ikifi5

关于javascript - jQuery .each在IE中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6123402/

10-13 01:34