1

画像スクローラーを設定し、current_itemという変数を使用して現在のアイテムのカウントを保持しています。ここで、インデックスがitem_countと一致する画像のリストに画像の代替テキストを表示したいと思います。

これが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>

これは私がやろうとしていることですが、機能していません。誰かが私がどこで間違っているのかわかりますか?

4

3 に答える 3

3

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

代わりに、に渡しcurrent_item.eq、最初にliそのインデックスを持つ要素を取得してから、imagealt属性を取得することをお勧めします。

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

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

または、ワンライナー(読みやすくするために新しい行とタブを追加)を使用して、以下を使用せずに同じセレクターで画像を選択することもできます.find

$("#ax_campaign_scroller h4").text(
    $("#ax_campaign_content li:eq("+current_item+") img")
        .attr("alt")
);
于 2011-01-29T14:55:18.463 に答える
2

eqメソッドを試してください-http://api.jquery.com/eq/

$('#ax_campaign_content li img').eq(current_item).attr('alt');
于 2011-01-29T14:55:40.647 に答える
0

それぞれが各li要素をループしているため、各関数内でimgを検索すると、li内を検索します。

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

各li内には1つのimgしかないため、常にゼロを返します。

Jquery .eachはすでにインデックスを提供しているので、次のようにcurrent_itemに対してそれをテストできます。

$('#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);
    }
});

更新されたコメントへの対応:いつでもワンライナーに行くことができます!

$('#ax_campaign_scroller h4').text(
    $('#ax_campaign_content li').eq(current_item).children('img').attr('alt')
);
于 2011-01-29T15:00:12.793 に答える