微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JQuery.each有时失败

如何解决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 举报,一经查实,本站将立刻删除。