为什么 $.isEmptyObject($('#id-does-not-exist-on-page')) 返回 false?



我对jQuery.isEmptyObject method有点困惑。

$.isEmptyObject([])->返回真实

但是

$('#id-does-not-exist-on-page')=>[]

$.isEmptyObject($('#id-does-not-exist-on-page'))返回错误

为什么?谢谢

来自isEmptyObject,

检查对象是否为空(不包含属性)

但是,

$('#id-does-not-exist-on-page')仍然具有属性。

$('#id-does-not-exist-on-page').addClass('abra_ka_dabra')//有效

[].addClass('abra_ka_dabra');//TypeError:对象没有方法"addClass">

所以,

试试这个

$.isEmptyObject($('#id-does-not-exist-on-page')[0])

根据jQuery文档(isEmptyObject):

参数应该始终是一个普通的JavaScript对象,就像其他类型一样对象(DOM元素、基元字符串/数字、主机对象)的无法在浏览器之间提供一致的结果

因为$('#id-does-not-exist-on-page')返回一个不匹配的选择器,而不是一个空对象,该对象将是{}

最新更新