使用JQuery查找其索引与count变量匹配的项目

时间:2011-01-29 14:50:37

标签: jquery image indexing each scroller

我设置了一个图像滚动条,并通过名为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>

这是我正在尝试做的但是它不起作用。谁知道我哪里出错?

3 个答案:

答案 0 :(得分:3)

您的代码将迭代li元素,然后迭代li内的图像,这将始终只是一个图像。所以你所做的事情永远不会得到与current_item变量相关的任何内容。

相反,您可能想尝试将current_item传递给.eq,先使用该索引获取li元素,然后获取图片alt属性:

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")
);

答案 1 :(得分:2)

尝试方法 - http://api.jquery.com/eq/

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

答案 2 :(得分: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')
);