JQuery.each有时会失败

JQuery.each有时会失败,jquery,Jquery,在一堆复选框上循环有时会失败。 选中部分或所有复选框时,不会输入.each函数,因此即使存在“已选中”复选框,我也会收到“未选中复选框”警报 $(document).ready(function() { $("#submitme").click(function() { var urls = []; $("#edit :checked").each(function() { var obj = {}; obj.url = $(this).val();

在一堆复选框上循环有时会失败。 选中部分或所有复选框时,不会输入.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>
$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
var url=[];
$(“#编辑:选中”)。每个(函数(){
var obj={};
obj.url=$(this.val();
推送(obj);
});
if(0

对我来说似乎很好:

确保代码中其他地方没有javascript错误。

您的选择器应该是
$(“#编辑输入:选中”)

我认为您有一些语法问题。尝试:

$(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!");
   }
   });
   });

这个问题没有答案。这个问题只存在于Opera中,因此它与浏览器相关。

一分钟后,我会在Fiddle中再次检查此问题发生时是否有错误,或者您是否可以重现此问题?把它扔进JSFIDLE,它似乎一次也没有失败……您的代码看起来不错,而且确实有效!看我的小提琴:页面上是否有其他可能会干扰的代码?这是您代码的精确副本还是您重新键入的?编辑:忍者,我发誓neal和bjorn的评论不在那里,当我开始输入时,这很有趣,当你把它拉到一个实际的页面,它不会解析。如果
被弄糟了。在用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