2011-01-29 18 views
1

イメージスクロールが設定されていますが、current_itemという変数を使って現在の項目のカウントを保持しています。ここでは、item_countと一致するインデックスの画像のリストに画像のaltテキストを表示したいとします。ここでインデックスがカウント変数と一致する項目を検索する

はjQueryの

var scroll_text = $('#ax_campaign_content li').index(current_item).children('img').attr('alt'); 
$('#ax_campaign_scroller h4').text(scroll_text); 

だと、これは基本的なHTML構造である:

<div id="ax_campaign_content"> 
    <ul> 
    <li><img alt="Image 1"></li> 
    <li><img alt="Image 2"></li> 
</ul> 
</div> 

<div id="ax_campaign_scroller"> 
    <h4>Image Text Goes Here</h4> 
</div> 

これは私がやろうとしているが、それは働いていないものです。誰が私が間違っているのか分かりませんか?

+0

私は以下のeqメソッドで運がなかった。しかし、2番目の考えで - なぜ私はすべてのアイテムをループする必要がありますか?上記の改訂されたコードを使用するだけで、リスト内のインデックスのcurrent_item値と一致するアイテムのaltテキストを選択することはできませんでしたか? – mheavers

答えて

3

あなたのコードはli要素を繰り返し処理し、その中の画像を反復します。liは常に1つの画像に過ぎません。したがって、あなたがやっていることは、current_item変数に関連するものは決して得られません。代わりに

あなたが最初にそのインデックスとli要素を取得するために.eqcurrent_itemを渡してみてください、その後、画像alt属性を取得する場合があります(

var scroll_text = $("#ax_campaign_content li") 
    .eq(current_item) 
    .find("img").attr("alt"); 

$("#ax_campaign_scroller h4") 
    .text(scroll_text); 

をそれとも、ワンライナーでそれを行うことができます新しいラインと読みやすくするためのタブを添加)と.find使用せずに同じセレクタの画像を選択:

+0

$(これ)は子供が1人しかいませんか? each()関数のために、eq()は複数の項目を見つけることはありません... –

+0

@ Maximilian Ehlers、そうです!私は答えを丁度更新するつもりです。ありがとう:) – mekwall

+0

恐ろしい!これはうまくいった。みんな助けてくれてありがとう。わずかな修正 - eq(current_item)ではなくeq(current_index)でなければなりません。 – mheavers

2
$("#ax_campaign_scroller h4").text(
    $("#ax_campaign_content li:eq("+current_item+") img") 
     .attr("alt") 
); 

トライEQ方法 - http://api.jquery.com/eq/

$('#ax_campaign_content li img').eq(current_item).attr('alt'); 
0

あなたのそれぞれが、それぞれのli要素をループされているので、あなたは、各関数内のimgを探したときには、Liの内側に探している:あなたが唯一の1を持っているので

$(this).children("img").index() 

は常にゼロを返します。各liの中にimg。 あなたはいつもワンライナーのために行くことができます:更新されたコメントへの対応

$('#ax_campaign_content li').each(function(index) { 
     if (index == current_item){ 
     scroll_text = $(this).children('img').attr('alt'); 
     $('#ax_campaign_scroller h4').text(scroll_text); 
    } 
}); 

すでにあなたにインデックスを与える.each jqueryの、あなたは自分のcurrent_itemに対してそれほどのようなことをテストすることができますので!

$('#ax_campaign_scroller h4').text(
    $('#ax_campaign_content li').eq(current_item).children('img').attr('alt') 
); 
+0

あなたは一直線上にいます。私はそれを最初からやっていましたが、それを分割するとこれが理解しやすくなると思いました:) – mekwall

関連する問題