Javascript 获取选定元素的第n个子元素的编号
我试图找出如何获得所选元素的第n个子元素的数目。例如,如果我有:Javascript 获取选定元素的第n个子元素的编号,javascript,jquery,html,Javascript,Jquery,Html,我试图找出如何获得所选元素的第n个子元素的数目。例如,如果我有: <parent> <child>a</child> <child>b</child> <child>c</child> <child>d</child> <child>e</child> </parent> $('child').click(function(){
<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'));
});
如果我点击c
,我喜欢控制台输出3
谢谢你迅速的回答。我还有一个问题。我发现如果我使用:
<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>
它将始终输出1
如果我这样做了:
function nthOf(e) {
console.log($('parent').index($(e)));
}
它将始终输出-1
如何修复此问题?您可以使用获取其同级元素的数量
$('child').click(function(){
console.log($('child').index( this ) + 1);
});
在回答你最近的评论时,我不知道你想实现什么,但如果这是你想要的,我会给你:D,根据你对问题的更新。你的功能应该是
function nthOf(e) {
console.log($(e).parent().children().index(e) + 1);
}
请记住,如果OP在单击
c
时想要3
,他们需要在其中添加1。另外,也没有必要把这个传给。
。很好,詹姆斯!我将更新答案。它总是返回:0@shushil更新的代码。我想你可以在这个链接@SunilKumar中找到你想要的东西。它似乎总是输出-1
@jameswayn:你试过这个吗?@SunilKumar这里:
function nthOf(e) {
console.log($(e).parent().children().index(e) + 1);
}