1

私が与えられたhtmlコードを持っていると仮定します:

<ul class="fmenu123">
    <li>city</li>
    <li>service</li>
    <li>hour</li>
</ul>

jquery関数childrenとセレクターにありnth-childます。ulしかし、この要素の「マウスオーバー」された子のシリアル番号、つまりn、のn番目の子ulがまさにこの選択された要素であるような番号をどのように見つけることができますか?これを見つけるためのjqueryの最も簡単な方法はどれですか?前もって感謝します。

4

3 に答える 3

2

。索引()

$(".fmenu123 li").on("mouseover", function() {
    var index = $(this).index() + 1;
    console.log("hovered element: " + index);
});

フィドル

于 2012-08-15T09:19:00.817 に答える
0

previousSiblingnullに達するまで、 sを1でカウントnodeTypeします(要素ノードのみをカウントします。テキストノードとコメントノードは無視したいと思います)。

function getElementIndex(node) {
    var index = 0;
    while ( (node = node.previousSibling) ) {
        if (node.nodeType == 1) {
            index++;
        }
    }
    return index;
}

例:

$('li').on('mouseover', function() {
    var index = getElementIndex(this);
});
于 2012-08-15T09:19:17.237 に答える
0

.index()次のように関数を使用できます。

$('li').on('mouseover', function() {
    var n = $(this).index() + 1; // :nth-child() is 1-indexed, .index() is 0-indexed
    // do some stuff with n
});
于 2012-08-15T09:19:18.250 に答える