十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
需要检查一个对象(Object)是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都网站设计、巴东网络推广、小程序制作、巴东网络营销、巴东企业策划、巴东品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供巴东建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
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;
}
判断一个对象是否为jquery对象可以用 obj instanceof jQuery
例如:
var obj = $("div");
if(obj instanceof jQuery){
alert("这是一个jQuery对象");
}else{
alert("这是一个其它对象")
}
$(".otherWeek").each(function(){
console.info(this instanceof jQuery); //false
console.info($(this) instanceof jQuery); //true
})
//使用typeof 关键字判定
if('function'==typeof $('#id').thefunction)
{
alert('是个方法');
}
else
{
alert('不是方法');
}
延伸拓展:
一、typeof 运算符
返回一个用来表示表达式的数据类型的字符串。
typeof[()expression[]] ;
expression 参数是需要查找类型信息的任意表达式。
说明
typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能:
"number," "string," "boolean," "object," "function," 和 "undefined."
typeof 语法中的圆括号是可选项
var isFunction ='function'== typeof (afunc);
和
var isFunction ='function'== typeof afunc;
是一样的
二、判断对象中是否具有指定属性
in 运算符 :
var obj = {name:'testname'};
alert('name' in obj ); // -- true
alert('toString' in obj); // -- true
2.hasOwnProperty() 方法:
var obj= {name:testname};
obj.hasOwnProperty('name'); // -- true
obj.hasOwnProperty('toString'); // -- false
原型链上继承过来的属性无法通过hasOwnProperty检测到,所以返回false。注意:虽然in能检测到原型链的属性,但for in通常却不行。
使用 jQuery 对象的属性 length 来判断,如果大于0则表示存在,等于0则表示不存在。
jquery判断对象是否存在代码如下:
说明:
定义和用法
length 属性包含 jQuery 对象中元素的数目。
语法
$(selector).length