2010-11-30 13 views
0

関数ループ内で、さらにDOMにトラバースする必要があります。

$('.panel_wrapper .panel').each(function(index) { 
    // how can I append to this. For instance another class = "foo" 
    $(this) .foo /* does not work */ 

これは

$(this) = $('.panel_wrapper .panel'); 
$(this) .foo 

機能で私がやろうとしているものと似ている以下の優れた例です。

$('.panel-wrapper .panel').each(function(index) { 
    $('.panel-wrapper .panel:eq(' + index + ') .collection_alt_thumbs img:eq(0)').css({"border-color" : "#9B9B9B", "opacity" : 1});   
}); 

関数内でその追加の操作があります最初の操作の後ではなく、条件文の後に実行されます。以下を実行することができます。

$('.panel-wrapper .panel').each(function(index) { 
    $(this) ('.collection_alt_thumbs img:eq(0)').css({"border-color" : "#9B9B9B", "opacity" : 1}); 
    // conditional statement 
    $(this) /* some other element */ 

}); 
+1

何を追加?最初のセレクタに一致するすべてのオブジェクトに "foo"という名前のcssクラスを追加しますか?あなたの質問にもっと正確にしよう。 –

答えて

1

あなたは.find()機能を使用できます:あなたはそれは本当にあなたがしようとしているものに依存し

$(this).addclass("foo") 

を使用する必要がありますクラスを追加するには

$(this).find('.foo'); 
+0

私はクラスやIDを追加していない、私は宛先に別のパスを追加しようとしている。例えば、私は第二の李のイメージを取得する必要があります。条件付きテストがあると、第3のイメージで不透明度を変更する必要があります。ですから、いったん$(この)他のロジックを実行する必要があります。 – barryg

1

をあなたがDOM要素自体に直接アクセスしたい場合は、 を入れてください。

this.foo =... 

0

あなたがセレクタに追加しますか(.each関数内)DOM要素自体にFOOを追加します(すなわち、選択したアイテムをさらに制限する)か、選択したアイテムに追加しますか? @ダーリンのソリューションは、前者を行います。あなたが複数の項目を選択し、同様にそれらの上に行き来したい場合は、次のいずれかを行うことができます

$('.panel_wrapper .panel').add('.foo').each(function(index) { 

または

$('.panel_wrapper .panel, .foo').each(function(index) { 
+0

質問を更新しました。 – barryg

関連する問題