开发者社区> 问答> 正文

检查数组是否为空或空

我想知道如何检查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

展开
收起
保持可爱mmm 2020-02-08 11:18:33 414 0
1 条回答
写回答
取消 提交回答
  • 只要您的选择器实际上在工作,我就不会发现检查数组长度的代码有问题。那应该做你想要的。有很多方法可以使您的代码更简洁,更易读。这是一个清理过的版本,其中包含有关我清理过的内容的注释。

    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[]']")?

    2020-02-08 11:18:44
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载