如何在自己的父母身下获得悬停孩子的index()?

时间:2016-02-04 11:30:21

标签: jquery hover

我有code

<div class="fascia">
    <div class="navigator">
        <div class="item">Item 0</div>
        <div class="sibling">sibling</div>
        <div class="item">Item 1</div>          
        <div class="sibling">sibling</div>
        <div class="item">Item 2</div>
    </div>

    <div class="navigator">
        <div class="item">Item 3</div>
        <div class="sibling">sibling</div>
        <div class="item">Item 4</div>
        <div class="sibling">sibling</div>
        <div class="item">Item 5</div>
    </div>      
</div>
var navigators = $('.fascia .navigator');
navigators.find('.item').hover(
    function () {
        var elem = $(this);
        var index = elem.index(".item");
        navigators.find(".item:eq(" + index + ")").addClass("hover");
    }, function () {
    }
);

但是当我悬停第4项时,我需要获得索引1,而不是4.因此,由于当前父项的子项而不是&#34;所有&#34;得到索引。在dom的孩子们。当然我想保留navigators变量,因此悬停处理程序对所有元素都是唯一的。

1 个答案:

答案 0 :(得分:4)

只需使用index()而不使用任何参数:

var navigators = $('.fascia .navigator');
navigators.find('.item').hover(
    function () {
        var elem = $(this);
        var index = elem.index();
        console.log(index);
    }, function () {
    }
);

来自doc

  

如果没有参数传递给.index()方法,则返回值是一个整数,表示jQuery对象中第一个元素相对于其兄弟元素的位置。

根据您更新的问题:

您可以这样使用:

var index = $(this).parent().children('.item').index(this);

这里我们首先抓取父元素并选择其子类,只需要对其进行索引,并使用索引(this)来获取索引。

感谢@ArunPJohny。