2

私は少し混乱していjQuery.isEmptyObject methodます。

$.isEmptyObject([])->trueを返します

しかし

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

$.isEmptyObject($('#id-does-not-exist-on-page'))falseを返します

なぜ ?ありがとう。

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:オブジェクトにメソッド'addClass'がありません

それで、

代わりにこれを試してください

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

于 2012-10-11T08:13:24.807 に答える
2

jQueryのドキュメント(isEmptyObject)によると:

他のタイプのオブジェクト(DOM要素、プリミティブ文字列/数値、ホストオブジェクト)ではブラウザ間で一貫した結果が得られない可能性があるため、引数は常にプレーンなJavaScriptオブジェクトである必要があります。

于 2012-10-11T07:52:02.330 に答える
0

$('#id-does-not-exist-on-page')空のオブジェクトではなく、何にも一致しないセレクターを返すためです。{}

于 2012-10-11T07:59:41.850 に答える