我对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')
返回一个不匹配的选择器,而不是一个空对象,该对象将是{}