jQuery .each不能在IE中工作

问题描述

| 我有一个复选框列表
<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