扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
需要检查一个对象(Object)是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:
成都创新互联10多年成都企业网站定制服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都企业网站定制及推广,对成都墙体彩绘等多个领域拥有丰富的网站营销经验的网站建设公司。
if (isEmptyObject(obj)) {
// obj is empty
} else {
// not empty
}
至于 isEmptyObject 的实现,jQuery 中有一个很有想法的方式,请看代码:
function isEmptyObject(obj) {
for (var key in obj) {
return false;
}
return true;
}
尽管 Javascript 没有原生提供 isEmpty() 方法,但它提供了迭代器,可以用来遍历所有的键值对。于是 jQuery 所做的事情,就是尝试遍历,如果有任何一个键值对,即说明对象非空,直接返回 false。从效率上来说,由于只读取了一个元素,顶多加上一些跳出循环的开销,实际性能不会比原生方法差太多。
function isNullObj(obj){
for(var i in obj){
if(obj.hasOwnProperty(i)){
return false;
}
}
return true;
}
参考下面代码中的if判断来实现的,如果真空怎么样,如果不为空怎么样:
$(document).ready(function() {
$(“form”).submit(function(){
if ($(“select[name='boardid']“).val() == “”){
alert(“对不起,请选择类别!”);
$(“select[name='boardid']“).focus();
return false;
}
if ($(“select[name='boardid']“).val() == “请选择分类”){
alert(“对不起,请选择类别!”);
$(“select[name='boardid']“).focus();
return false;
}
if ($(“input[name='txtcontent']“).val() == “”){
alert(“对不起,请填写内容!”)
$(“input[name='txtcontent']“).focus();
return false
}
if ($(“input[name='txtcontent']“).val().length 150){
alert(“对不起,内容超过150个字符限制!”)
$(“input[name='txtcontent']“).focus();
return false
}})
$(“#t”).keyup(function(){
$(“.inner”).text($(“input[name='txtcontent']“).val());
}).change(function(){
$(“.inner”).text($(“input[name='txtcontent']“).val());
});
});
// 如果是一个空对象 var obj = {}; obj == false; // true // 所以可以这样: if (obj) { // 这个意思是把obj强制转换成bool值,故会被转成false然后在if中做判断 // false } else { // true } // 如果obj不是一个空对象 var obj = {id: 1}; obj == true; // true // 原理同上 或者 : var obj=null; if(!obj){ //TODO:如果为空执行的代码 } js 实例如下:if (typeof(obj) == undefined) {//操作语句}如果typeof(obj) == undefined 为true则该对象不存在,当前脚本还没有定义该对象 其他的写法要注意: // 这种方法不起作用 if (x == undefined)//操作语句// 对象属性不存在, 声明了变量但从未赋值。实例:htmlbody script type=text/javascript if (typeof(ActiveXObject)==undefined) {alert(不存在ActiveXObject)}else {alert(存在ActiveXObject!!)} /script/body /html //返回的是:存在ActiveXObject,因为该对象是js里已经制定的对象已经由js定义声明过的,只要是js制定存在的都是非 undefined 但是如果改为:typeof(ActiveXObject1)==undefined 则返回的是不存在了ActiveXObject1 另外typeof(t1)==undefined 如果这个对象不存在于该脚本范围内,或者如果t1 是声明的变量但是没有初始化也就是没有赋值两者都会返回undefined 判断元素是否存在: script language=javascript function changelocation(){ if(document.getElementById(payment_info)) alert('true');else alert('false');} /script
可以通过判断数组的长度length来判断数组是否为空,空数组的length值为空。数组的 length 属性总是比数组中定义的最后一个元素的下标大 1。对于那些具有连续元素,而且以元素 0 开始的常规数组而言,属性 length 声明了数组中的元素的个数。数组的 length 属性在用构造函数 Array() 创建数组时被初始化。给数组添加新元素时,如果必要,将更新 length 的值。
设置 length 属性可改变数组的大小。如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined。
工具原料:编辑器、浏览器
1、如果一个数组为空则其属性length为0否则为数组的实际长度,代码如下:
var a=[]
var b=[1,2,3]
a.length
b.length
2、早console的控制台的输出结果如下:
3、a按照这个原理直接判断数组的长度即可判断数组是否为空:
if(rr.length == 0){
console.log("数组为空");
获取到当前元素,if判断value 是否 == “”;
if( $("input").value == "" ){
//为空时执行
}else{
//不为空时执行
}
// The Harder You Work, The Luckier You Will Be. (Jensonhui.com)
//有如下三种判断:
var A=$("#**).val();
if(A==null||A!=undefined||A==""){
//处理
}
还有另一种更简单的方法 测试过 可用:
var A=$("#**).val();
if(A.length0){
//非空处理
}
扩展资料:
这里解释一下null与undefined和”“的区别:
null:空对象\不是对象,转为数值为0
undefined:全局对象window的一个特殊属性.undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。转为数值为NaN.典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
参考资料:CSDN
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流