如何解决JQuery.each有时失败
| 有时循环遍历一堆复选框会失败。 选中某些或所有复选框时,不会输入.each函数,因此即使存在“已选中”复选框,我也会收到“未选中复选框”警报。$(document).ready(function() {
$(\"#submitme\").click(function() {
var urls = [];
$(\"#edit :checked\").each(function() {
var obj = {};
obj.url = $(this).val();
urls.push(obj);
});
if (0 < urls.length) {
$.post(\'/myurl\',{urls: JSON.stringify(urls)});
}
else {
alert(\"no checkBoxes were checked!\");
}
});
});
<div id=\"edit\">
<input type=\"checkBox\" name=\"first\" value=\"first_url\"/>
<input type=\"checkBox\" name=\"second\" value=\"second_url\"/>
<button id=\"submitme\">submit</button>
</div>
jsfiddle示例
解决方法
没有问题的答案。该问题仅存在于Opera中,因此与浏览器有关。
, 似乎对我来说工作正常:http://jsfiddle.net/maniator/BFuaZ/
确保代码中的其他任何地方都没有JavaScript错误。
, 您的选择器应为
$(\“#edit input:checked \”)
, 我认为您有一些语法问题。尝试:
$(document).ready(function() {
$(\"#submitme\").click(function() {
var urls = new Array();
$(\"#edit :checked\").each(function() {
var obj = new Object();
obj.url = $(this).val();
urls.push(obj);
});
if (0 < urls.length){
$.post(\'/myurl\',{urls: JSON.stringify(urls)});
}else {
alert(\"no checkboxes were checked!\");
}
});
});
如果您在jsfiddle中查看JSLint输出,则会得到此信息
Error:
Problem at line 2 character 25: Use the array literal notation [].
var urls = new Array();
Problem at line 4 character 21: Use the object literal notation {}.
var obj = new Object();
Problem at line 9 character 7: Expected \'{\' and instead saw \'console\'.
console.log(urls)
Problem at line 9 character 24: Missing semicolon.
console.log(urls)
Problem at line 11 character 7: Expected \'{\' and instead saw \'alert\'.
alert(\"no checkboxes were checked!\");
Implied global: $ 1,3,5,console 9,alert 11
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。