0
<ul>
    <li><div><a href="#">line a</a></div></li>
    <li><div><a href="#">line b</a></div></li>
    <li><div><a href="#">line c</a></div></li>
    <li><div><a href="#">line d</a></div></li>
    <li><div><a href="#">line e</a></div></li>
</ul>

我需要的输出是获取<li>标签的位置(计数)。我不能用index()这个。例如,如果我点击“Line a”,我需要得到的输出是“1”,对于“Line b”,我需要“2”;等等。

我不能使用索引()。

4

3 回答 3

3

可以使用索引:

$('li a').click(function(){
   console.log('index is ' + ($(this).closest('li').index()+1));
});
于 2013-03-26T08:49:19.570 回答
0
$('a').click(function(){
   var li = $(this).parent().parent(); //current li
   var ul = li.parent().children(); //all ul children li's
   alert('Index: ' + ul.index(li));
});
于 2013-03-26T09:15:34.073 回答
0

.index()如果您相对于单击的元素使用它应该可以正常工作:$('a').index(this)

示例代码:

$(document).ready(function () {
    $('a').on('click', function() {
        alert($('a').index(this)+1);

        return false;
    });
});

jsfiddle:http: //jsfiddle.net/vjV7Y/10/

注意:我添加了+1因为index()返回0第一个元素而不是1.

于 2013-03-26T08:56:18.023 回答