$(this)セレクター内でimgを「選択」しようとしています。私はそれを使用して見つけることができることを知っています.find('img')
が、これは可能です:
$("img",this)
?
これを行うための最適な方法は何ですか?
元々コード
<a class="picture" href="test.html">
<img src="picture.jpg" alt="awesome">
</a>
$(this)セレクター内でimgを「選択」しようとしています。私はそれを使用して見つけることができることを知っています.find('img')
が、これは可能です:
$("img",this)
?
これを行うための最適な方法は何ですか?
元々コード
<a class="picture" href="test.html">
<img src="picture.jpg" alt="awesome">
</a>
これを行うための最適な方法は何ですか?
$(this).find('img')
とは両方とも$('img', this)
同等です。
ドキュメントから:
内部的には、セレクターコンテキストは.find()メソッドで実装されるため、$('span'、this)は$(this).find('span')と同等です。
それを行うのに最適な合理的な方法です。
だからあなたは次のようにします:
$('a').click( function() {
//if the element dosent change you can use this
//var src = $('img', this).attr('src');
//else use $(this)
var src = $('img', $(this)).attr('src');
alert(src);
return false;
});
参照: http: //jsfiddle.net/xYmwV/
どちらの方法でもdom要素をロードして検索するため、実際には違いはありません。もちろん、あなたのやり方は「よりクリーン」でシンプルですが、もっと混乱するかもしれません:)
より高速な方法は$(this).children()
、要素を検索する必要がないためですが、DOM内で直接ダウンワードになります。しかし、それはスクリプトの柔軟性を奪います。
はい、あなたはそれを行うことができます...とにかくそれらは同等なので、それはあなたの「構文の好み」の問題だけです:
内部的には、セレクターコンテキストは.find()メソッドで実装されるため、$('span'、this)は$(this).find('span')と同等です。
それは本当に重要ではありません、あなたが好むものを選んでください、それは主に文体の選択です。
jQueryは、内部でor(すでにjQueryインスタンスの場合)を$(selector, context)
実行することでフォームを処理するため、理論的にはフォームの方がわずかに効率的ですが、実際に問題になる可能性はほとんどありません。$(context).find(selector)
context
context.find(selector)
find
なんで使えないの.find('img')
?それは私にはうまくいきます:http://jsfiddle.net/nnmEY/
$(this)セレクター内でimgを「選択」しようとしています。
var myImg = $(this).find("img");