jquery获取悬停li的索引

时间:2012-07-02 12:48:07

标签: jquery indexing html-lists

我想做的就是返回悬停的i的索引,ul有一个类.around

这看起来应该可行

$('.around li').on("mouseover", function(event){
var myindex =  $('.around').index(this);
console.log(myindex);
})

5 个答案:

答案 0 :(得分:2)

这个怎么样:

$('.around li').on("mouseover", function(event){
var myindex =  $(this).index();
console.log(myindex);
})

答案 1 :(得分:1)

也许您正在尝试这样做:

var li = $('.around li');
li.on("mouseover", function(){
   var myindex = li.index(this);
   console.log(myindex);
})

示例小提琴:http://jsfiddle.net/MKExb/

答案 2 :(得分:0)

你可以这样写:

var listItem = document.getElementById('bar');
alert('Index: ' + $('li').index(listItem));

HTH

答案 3 :(得分:0)

你可以用这个

<script type="text/javascript">

      $(document).ready(function () {
            $('.around li').each(function () {
                $(this).bind('mouseover', null, function () {
                    var index = $('.around li').index(this);
                    console.log(index);
                });

            }, function () { });

        });

</script>

或更清洁的

 <script type="text/javascript">
    $(document).ready(function () {
        $('.around li').hover(function () {
            var index = $('.around li').index(this);
            console.log(index);
        }, function () { });

    }); 
    </script>

答案 4 :(得分:0)

关于性能,公认的答案是错误的。更好地缓存查询并使用委托,这样一来,在ul上仅设置一个处理程序,然后将每个事件委托给鼠标所在的li。我修改了原始的jsfiddle,看看了,就像一个魅力,而且代码不再冗长:

http://jsfiddle.net/zhkjLoet/1/

var ul = $('.around'); // cache query
ul.on("mouseover","li", function(event){ //delegate events to li child
   var myindex = $(this).index();
   console.log(myindex);
})