使用jquery获取元素位置

时间:2012-12-06 15:10:18

标签: javascript jquery

我想使用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 witch是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 个答案:

答案 0 :(得分:10)

使用index()获取排名。它会为您提供zero-based index,因此您将获得第一个元素的0

<强> Live Demo

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

答案 1 :(得分:2)

您只需使用.index()查找li

的位置即可
$('li').click(function(){
    alert($(this).index());
})​

演示:http://jsfiddle.net/muthkum/2mR5U/

答案 2 :(得分:0)

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

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

    console.log(previous.index());
});

答案 3 :(得分:0)

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

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

    console.log(number);
});​