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(){...})

たとえば、3番目のliをクリックすると、関数はliposwitchが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

あなたは単に.index()liの位置を見つけるために使用することができます

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

デモ: 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 に答える