这是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();
会显示相同的结果。
请帮忙!代码有什么问题?
答案 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());
});
});