2016-10-12 19 views
2

選択した要素のn番目の子の数を取得する方法を理解しようとしています。例えば、私が持っている場合:選択した要素の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')); 
}); 

をそして、私は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> 

、その後:

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

それはなります常に出力1

そして、私がない場合:

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

それは常に出力は以下となり、私は私が使用している場合ことを見つけます-1。

これを修正するにはどうすればよいですか?

+1

私はあなたがこのリンクで探しているものを見つけることができると思い[jQueryの:親に対する子としての要素のインデックスを取得します](のhttp:/ /stackoverflow.com/questions/4996002/jquery-get-index-of-element-as-child-relative-to-parent) –

+0

https://jsfiddle.net/rzq3r4tw/ –

+0

@SunilKumar常に ' - 1 'となる。 –

答えて

3

.index()を使用すると、兄弟の中の要素の数を取得できます。最近のコメントへの返信で

DEMO

$('child').click(function(){ 
    console.log($('child').index(this) + 1); 
}); 
は、私はあなたが達成しようとしているものを知らない、しかし、もしあなたが私はあなたにそれを与えるだろう何をしたいのthats:Dので、あなたの更新ごととして質問に。あなたの関数があるべき...

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

DEMO

+1

OPが 'c'をクリックしたときにOPが' 3'を望むならば、それに1を加える必要があることに注意してください。また、 'this'を渡す必要はありません。 –

+0

良いキャッチがあり、ジェームス!私は答えを更新します。 –

+0

常に返されます:0 –

関連する問題