我想知道如何在 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
}
一些关于你在做什么和我改变了什么的笔记。
$(this)
始终是有效的 jQuery 对象,因此没有理由检查if ($(this))
。它内部可能没有任何 DOM 对象,但如果需要,您可以使用$(this).length
检查它,但这在这里不是必需的,因为.each()
如果没有项,循环将不会运行,因此.each()
循环中的$(this)
将始终是 something。- 在同一函数中多次使用 $(this) 是低效的。最好先将它放入一个局部变量中,然后从该局部变量中使用它。
- 建议使用
[]
而不是new Array()
来初始化数组。 if (value)
当 value 应该是一个字符串时,将同时防止value == null
、value == undefined
和value == ""
所以你不必执行if (value && (value != ""))
。您只需执行以下操作:if (value)
来检查所有三个空条件。if (album_text.length === 0)
会告诉您数组是否为空,只要它是一个有效的、已初始化的数组(它就在这里)。
你想用这个选择器做什么$("input[name='album_text[]']")
?
关于jquery - 检查数组是否为空或 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198197/