私は興味がある。これ:
$('div'), this $($('div')), and this $($($('div')))... and so on
すべてがHTML要素のセレクターとして機能しているようです。なぜこれが機能するのか、そして(冗長性以外に)実際にこれを行うときに発生する問題がある場合は、誰かが知っていますか?
私は興味がある。これ:
$('div'), this $($('div')), and this $($($('div')))... and so on
すべてがHTML要素のセレクターとして機能しているようです。なぜこれが機能するのか、そして(冗長性以外に)実際にこれを行うときに発生する問題がある場合は、誰かが知っていますか?
jQuery関数は、既存のjQueryオブジェクトを引数として取ることができます。これは文書化された意図的な動作です。こちらのマニュアルをご覧ください:http://api.jquery.com/jQuery/
また、HTML要素に固有のものではありません。$( $('#foo') )
動作します。
私が過去に利用したこの理由の1つは、関数にセレクターまたはjQueryオブジェクトのいずれかを受け入れさせるためです。だから私は関数を書くことができました:
function excite(target) {
$(target).append(' This is exciting!');
};
excite('.foo');
これは、またはで呼び出すのが安全ですexcite( $('p:not(.exciting-already)').empty() );
jQueryがjQueryオブジェクトを受け取った場合、何もする必要がないため、jQueryオブジェクトはそのまま返されます。
これは通常、jQueryオブジェクトを誤って元に戻す可能性のある悪意のあるコーダーに対処するためのものです。$()
jQueryセレクターは、文字列、HTML要素、またはその他のjQueryオブジェクトのいずれかをセレクターとして受け取ります。この場合、最初の例<div>
ではページ上のすべての要素を選択します。<div>
2番目の例では、すべての要素のjQueryセットを再選択しています。3番目の例では、セットを再選択しています。これは、完全な冗長性以外に問題なく無期限に継続できます。