2011-07-08 18 views
3

Iは、しばしば以下のようなjQueryの、中each方法を利用する:関数はjQueryオブジェクトの各要素に対して行われる 単一のjQueryオブジェクトに対して関数を実行するにはどうすればよいですか?

$('#thing img').each(function(){ 
    //do some stuff 
}); 

...。 オブジェクト内の唯一の(または最初に一致した)要素に対してアクションを実行するためのメソッド/構文はありますか?

私は、問題のアプリケーションが既にそれを使用するように私は、jQueryのを使用する必要がありますが、できません

$('#thing img').do(function(){ 
    //do some stuff 
}); 

のようなものを想像しています。

答えて

3

だけの問題を複雑にしないでください:

var thisImg = $('#thing img')[0]; 
//do some stuff with thisImg 
+2

返されるオブジェクトは、もはやjQueryオブジェクトではないことに言及してください。 – alex

+0

'each'関数内の' this'もjQueryオブジェクトではありませんので、OPがうまく混乱することはありません。 –

2

セレクタeqを使用できます。

試してみてください。

$('#thing img').eq(0).each(function(){ 
    //do some stuff 
}); 

または

$('#thing img:eq(0)').each(function(){ 
    //do some stuff 
}); 

か(ヨハネのインプット@に基づく)

$('#thing img').first().each(function(){ 
     //do some stuff 
    }); 
+1

をチェックしてくださいあります同等の '.first()'もまた一目瞭然です。 –

+0

@ジョン:言及のためのThx – Chandu

+0

私はあなたが意味するものを参照してください。質問を投稿すると、jQueryのメソッドは、本質的に、複数のコンポーネント要素を持つオブジェクトを処理するように設計されていることが明らかになりました。 –

2

ただ、そうのような最初の要素をセレクタを制限:

$('#thing img:eq(0)').each(function(){ 
//do some stuff on the first response only 
}); 
1

あなたは自分のものを

$('#thing img').each(function(){ 
    //do some stuff for 1st matched item then 

return false; 
}); 
1

を完了したらループを破るためにreturn falseステートメントを使用This but not $(this)

(function($){ 
    $.fn.me = function(func) { 
     func.call(this[0]); 
     return this;  
    } 
})(jQuery); 
関連する問題