jquery - 检查数组是否为空或 null

标签 jquery arrays is-empty

我想知道如何在 jQuery 中检查数组是否为空或 null。我尝试了 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
}

最佳答案

只要您的选择器实际工作,我认为您检查数组长度的代码没有任何问题。那应该做你想做的。有很多方法可以清理你的代码,使其更简单、更易读。这是一个清理过的版本,其中包含关于我清理过的内容的注释。

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
}

一些关于你在做什么和我改变了什么的笔记。

  1. $(this) 始终是有效的 jQuery 对象,因此没有理由检查 if ($(this))。它内部可能没有任何 DOM 对象,但如果需要,您可以使用 $(this).length 检查它,但这在这里不是必需的,因为 .each() 如果没有项,循环将不会运行,因此 .each() 循环中的 $(this) 将始终是 something。
  2. 在同一函数中多次使用 $(this) 是低效的。最好先将它放入一个局部变量中,然后从该局部变量中使用它。
  3. 建议使用 [] 而不是 new Array() 来初始化数组。
  4. if (value) 当 value 应该是一个字符串时,将同时防止 value == nullvalue == undefinedvalue == "" 所以你不必执行 if (value && (value != ""))。您只需执行以下操作:if (value) 来检查所有三个空条件。
  5. if (album_text.length === 0) 会告诉您数组是否为空,只要它是一个有效的、已初始化的数组(它就在这里)。

你想用这个选择器做什么$("input[name='album_text[]']")

关于jquery - 检查数组是否为空或 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198197/

相关文章:

javascript - 如何在ckeditor编辑器中获取保存事件?

php - 单击提交按钮时隐藏隐藏的输入值 (php/jquery)

javascript - 如何仅在 jQuery 验证插件成功时才发送 ajax 验证?

javascript - 如何在 jQuery 中展平数组?

php - 如何在不使用 foreach 的情况下循环多维数组

arrays - 检查是否只能使用数组中的数字组成从 1 到 K 的所有数字

r - 无法从 R 数据帧中删除空 `character(0)` 或 `list()` 值

c# - JsonConvert.DeserializeObject 特殊字符 未终止的字符串。预期的分隔符 :

javascript - 如何在javascript中检查对象中所有级别的对象是否为空

java - 我需要在 OR 条件的两侧都检查 null 吗?