在jquery中获取元素的第n个子数

前端之家收集整理的这篇文章主要介绍了在jquery中获取元素的第n个子数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个多个“DIV”元素,里面是’p’元素的列表。见下文:
<div class="container">
    <p>This is content 1</p>
    <p>This is content 2</p>
    <p>This is content 3</p>
</div>
<div class="container">
    <p>This is content 1</p>
    <p>This is content 2</p>
    <p>This is content 3</p>
</div>

这是我通过鼠标调用’p’元素的jquery代码

$('.container').children('p').hover(function(){
    //get the nth child of p from parent class 'container'
});

如何从其父容器类’container’获取元素’p’的第n个子代号?

喜欢,如果你悬停

This is content 1

应将触发输出为1;

谢谢!

解决方法

您可以使用jQuery的 index function。它告诉你给定元素相对于其兄弟姐妹的位置:
var index = $(this).index();

Live example | source

索引是基于0的,所以如果你正在寻找一个基于1的索引(例如,第一个是1而不是0),只需添加一个索引:

var index = $(this).index() + 1;

如果您没有使用jQuery并且遇到这个问题和答案(OP使用的是jQuery),那么没有这个问题也是很简单的。第n个孩子只考虑元素,所以:

function findChildIndex(node) {
    var index = 1;                         // nth-child starts with 1 = first child
    // (You could argue that you should throw an exception here if the
    // `node` passed in is not an element [e.g.,is a text node etc.]
    // or null.)
    while (node.prevIoUsSibling) {
        node = node.prevIoUsSibling;
        if (node && node.nodeType === 1) { // 1 = element
            ++index;
        }
    }
    return index;
}

猜你在找的jQuery相关文章