我想知道如何检查jQuery中的数组是空还是空。我试过了,array.length === 0但是没有用。它也没有引发任何错误。
这是代码:
var album_text = new Array();
$("input[name='album_text[]']").each(function(){ if( $(this).val() && $(this).val() != '') { album_text.push($(this).val()); } }); if (album_text.length === 0) { $('#error_message').html("Error"); }
else { // send data } 问题来源于stack overflow
只要您的选择器实际上在工作,我就不会发现检查数组长度的代码有问题。那应该做你想要的。有很多方法可以使您的代码更简洁,更易读。这是一个清理过的版本,其中包含有关我清理过的内容的注释。
var album_text = [];
$("input[name='album_text[]']").each(function() { var value = $(this).val(); if (value) { album_text.push(value); } }); if (album_text.length === 0) { $('#error_message').html("Error"); }
else { //send data } 关于您正在做的事情和我所做的更改的一些说明。
$(this)始终是有效的jQuery对象,因此没有理由进行检查if ($(this))。它可能不是在它里面的任何DOM对象,但你可以检查与$(this).length如果你需要,但在这里是没有必要的,因为.each()如果没有项目,因此循环不会跑$(this)你的内.each()循环将永远是什么。 在同一函数中多次使用$(this)效率低下。最好一次将它放入一个局部变量,然后从该局部变量中使用它。 建议使用[]而不是初始化数组new Array()。 if (value)当值预计将是一个字符串将两者保护value == null,value == undefined而且value == ""这样你就不必做if (value && (value != ""))。您可以执行以下操作:if (value)检查所有三个空条件。 if (album_text.length === 0) 会告诉您该数组是否为空,只要它是有效的,已初始化的数组(就在此处)。 您要如何使用此选择器$("input[name='album_text[]']")?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。