获取所选元素的第n个子元素的数量

时间:2016-10-12 13:00:49

标签: javascript jquery html

我想弄清楚如何获得所选元素的第n个孩子的数量。例如,如果我有:

<parent>
  <child>a</child>
  <child>b</child>
  <child>c</child>
  <child>d</child>
  <child>e</child>
</parent>

然后,如果我有:

$('child').click(function(){
  console.log($(this).nthChildOf('parent'));
});

如果点击3,我希望控制台输出c

感谢您的快速回答。我还有一个问题。我发现如果我使用:

<parent>
  <child onclick="nthOf(this)">a</child>
  <child onclick="nthOf(this)">b</child>
  <child onclick="nthOf(this)">c</child>
  <child onclick="nthOf(this)">d</child>
  <child onclick="nthOf(this)">e</child>
</parent>

然后:

function nthOf(e) {
  console.log($('parent').index(e));
}

它将始终输出1.

如果我这样做:

function nthOf(e) {
  console.log($('parent').index($(e)));
}

始终输出-1。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您可以使用.index()来获取其兄弟姐妹中的元素数量。

$('child').click(function(){
  console.log($('child').index( this ) + 1);
});

<强> DEMO

在回复你最近的评论时,我不知道你想要达到的目标,但如果那就是你想要的东西我会把它给你:D以便根据你对这个问题的更新。你的功能应该是......

function nthOf(e) {
  console.log($(e).parent().children().index(e) + 1);
}

<强> DEMO