JQuery:.index()返回-1

时间:2011-08-12 20:56:27

标签: javascript jquery

这是html的主要部分:

    <div id="table">
    <div class="table_item">asd</div>
    <div class="table_item">asd</div>
    <div class="table_item">asd</div>
    </div>

和JS(JQuery):

$(document).ready( function()
{
    $(".table_item").click( function()
    {
        alert($("#table").index($(this)));
    });
});

点击处理有效,但我总是从.index获得-1。

简单地尝试$(this).index();会显示相同的结果。

请帮忙!代码有什么问题?

3 个答案:

答案 0 :(得分:6)

请改为:

$(document).ready( function()
{
    var ti = $('.table_item');
    ti.click( function()
    {
        alert(ti.index(this));
    });
});

编辑:有人发帖被删除了,这是正确的,我觉得比上面的代码好一点:

$(document).ready( function()
{
    $('.table_item').click( function()
    {
        alert($(this).index());
    });
});

两个解决方案的工作示例:http://jsfiddle.net/FishBasketGordo/rx5e7/

答案 1 :(得分:1)

您需要在集合上调用index,在本例中为div table_item

alert($(".table_item").index(this));

答案 2 :(得分:1)

由于您要将click()听众附加到$(".table_item"),因此您可以使用$(this)来引用该对象。

尝试:

$(document).ready( function()
{
    $(".table_item").click( function()
    {
        alert($(this).index());
    });
});