3

我想使用 JQuery 查找元素位置。不是使用 .position 的 X 和 Y 位置。

举个例子

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

和 js

//return the li pos
$('li').click(function(){...})

例如,如果我单击第三个 li 函数返回 li pos 女巫是 2

我尝试了一些东西,但它不起作用

$('li').click(function(){
    for(var i = 0; i < $('li').length; i++){
        if($('li:eq('+i+')') == $(this)){
            alert(i);
            return true;
        }
    }
    alert('fail');
    return false;
})

我总是失败

谢谢

4

4 回答 4

10

使用index()获取位置。它给了你zero-based index,所以你会得到0第一个元素。

现场演示

$('li').click(function(){    
    alert($(this).index())
});
于 2012-12-06T15:12:02.290 回答
2

You can simply use .index() to find the position of li

$('li').click(function(){
    alert($(this).index());
})​

Demo: http://jsfiddle.net/muthkum/2mR5U/

于 2012-12-06T15:13:50.353 回答
0

您可以使用该prev()方法返回前一个元素。

$('li').click(function() {
    var previous = $(this).prev();

    console.log(previous.index());
});
于 2012-12-06T15:15:02.857 回答
0

试试看(http://jsfiddle.net/DfXwq/):

$('li').click(function(e){
    var target = e.target,
        parent = target.parentNode
        number = $(parent).children().index(target );

    console.log(number);
});​
于 2012-12-06T15:16:00.683 回答