2

我有点困惑jQuery.isEmptyObject method

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

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

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

为什么 ?谢谢。

4

3 回答 3

8

isEmptyObject

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

但,

$('#id-does-not-exist-on-page')还是有属性的。

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

[].addClass('abra_ka_dabra'); // TypeError: Object has no method 'addClass'

所以,

试试这个

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

于 2012-10-11T08:13:24.807 回答
2

根据 jQuery 文档(isEmptyObject):

参数应始终是纯 JavaScript 对象,因为其他类型的对象(DOM 元素、原始字符串/数字、宿主对象)可能无法在浏览器之间给出一致的结果

于 2012-10-11T07:52:02.330 回答
0

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

于 2012-10-11T07:59:41.850 回答