2017-10-27 14 views
-2

からインデックスを取得する方法を、私は子供のインデックスを取得したいここで父親要素

<div id="father"> 
     <div class="child"></div> 
     <div class="child"></div> 
     <div class="child"></div> 
</div> 

次のHTMLです。 jQueryので は、最初にインデックス を得るために何かあります、我々は最初のdivをクリックして、取得インデックス0

$(".child").click(function(alert($(this).index())}; 

をしかし、HTMLがあるとき:

<div id="father"> 
     <div class="child"></div> 
     <div class="child"></div> 
     <p>some text</p> 
     <div class="child"></div> 
</div> 

たちを4番目のdivをクリックしてインデックスを取得しない3 2 私は、または何らかの方法を試してみるが、役に立たない。

$(".child").index(":not(p)"); 

要件を満たすことができる簡単な方法がありますか?

ありがとうございます!

+0

はちょうどあなたのセレクタ '$( "子供:いない(P)")に追加'とにかく、p' does'nt持っ '場合は、これをやってない点はありません'子のクラス – Plotisateur

+1

あなたは実際にこの関数の使い方について[documentation](https://api.jquery.com/index/)を読んできましたか?関数が実際にどのように機能するかを考えると、あなたの質問は意味をなさないからです。 –

+0

あなたのコメントをありがとう、私の質問は申し訳ありませんが不明です。 最初にdivをクリックして最初のdivをクリックしてを取得し、pを上記のように追加すると、 4番目のdivをクリックしてインデックス3を取得しません。 私はそれを防ぐ方法を尋ねます。 –

答えて

0

また、クラス "子供" を持って、前の兄弟を数えることができます。参考のため

$('.child').click(function() { 
 
    var count = $(this).prevAll('.child').length; 
 
    console.log(count); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="father"> 
 
     <div class="child">AAA</div> 
 
     <div class="child">BBB</div> 
 
     <p>CCC</p> 
 
     <div class="child">DDD</div> 
 
</div>

は、チェック:https://api.jquery.com/prevall/

+0

私は公式メニューを読んだ。 私が知らない魔法の方法です。 おかげさまで、2つのコメントが私の質問を補完します。 –

+0

最後のdivをクリックしてください。必要な答えではありませんか? '$ .prevAll()'は '$ .index()'のようなjQueryの別のメソッドです。 –

+0

親愛なる@Washinhton:はい。解決しました。 –

0

使用.index()クリック<div>の場所を見つけるために親と比較して選択範囲のみを#father > divにフィルタリングします。

$("#father > div").click(function() { 
 
    console.log($(this).index()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="father"> 
 
     <div class="child">Foo</div> 
 
     <div class="child">Bar</div> 
 
     <p>some text</p> 
 
     <div class="child">FooBar</div> 
 
</div>

+0

あなたの返信のおかげで、私は不満のために申し訳ありません。 私はそれを編集しました。 –

関連する問題