inp*_*put 98 arrays jquery 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
}
Run Code Online (Sandbox Code Playgroud)
jfr*_*d00 153
只要您的选择器实际工作,我看到您的代码检查数组的长度没有任何问题.那应该做你想要的.清理代码有很多方法可以更简单,更易读.这是一个清理版本,附有关于我清理的内容的说明.
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
}
Run Code Online (Sandbox Code Playgroud)
关于你在做什么和我改变了什么的一些注意事项.
$(this)始终是一个有效的jQuery对象,所以没有理由去检查if ($(this)).它里面可能没有任何DOM对象,但你可以$(this).length在需要的时候检查它,但是这里没有必要,因为.each()如果没有项目就不会运行循环,所以$(this)你的.each()循环内部总是会有东西.[]而不是初始化数组new Array().if (value)当值预期为一个字符串无论是从保护value == null,value == undefined并且value == ""这样你就不必做if (value && (value != "")).您可以这样做:if (value)检查所有三个空条件.if (album_text.length === 0) 会告诉你数组是否为空,只要它是一个有效的初始化数组(它在这里).你想用这个选择器做$("input[name='album_text[]']")什么?
May*_*ure 66
用户JQuery是EmptyObject,用于检查数组是否包含元素.
var testArray=[1,2,3,4,5];
var testArray1=[];
console.log(jQuery.isEmptyObject(testArray)); //false
console.log(jQuery.isEmptyObject(testArray1)); //true
Run Code Online (Sandbox Code Playgroud)
小智 7
我认为使用来自jquery的$ .isEmptyObject检查数组是否为空是危险的,正如@jesenko所提到的那样.我刚遇到那个问题.
在isEmptyObject文档中,它提到:
参数应始终是纯JavaScript对象
你可以确定$.isPlainObject.回归$.isPlainObject([])是假的.
| 归档时间: |
|
| 查看次数: |
370192 次 |
| 最近记录: |