私は少し混乱していjQuery.isEmptyObject method
ます。
$.isEmptyObject([])
->trueを返します
しかし
$('#id-does-not-exist-on-page')
=> []
$.isEmptyObject($('#id-does-not-exist-on-page'))
falseを返します
なぜ ?ありがとう。
私は少し混乱していjQuery.isEmptyObject method
ます。
$.isEmptyObject([])
->trueを返します
しかし
$('#id-does-not-exist-on-page')
=> []
$.isEmptyObject($('#id-does-not-exist-on-page'))
falseを返します
なぜ ?ありがとう。
オブジェクトが空(プロパティを含まない)であるかどうかを確認します
しかし、
$('#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)によると:
他のタイプのオブジェクト(DOM要素、プリミティブ文字列/数値、ホストオブジェクト)ではブラウザ間で一貫した結果が得られない可能性があるため、引数は常にプレーンなJavaScriptオブジェクトである必要があります。
$('#id-does-not-exist-on-page')
空のオブジェクトではなく、何にも一致しないセレクターを返すためです。{}