1

これが私のHTMLで、タグがクリックされたとき、その<li>兄弟番号が何であるかを知りたいです。アドバイスお願いします。

 <div id="tabs">
       <ul>
           <li class="select" ><a href="#" id="tabHotel">Hotel</a></li>
           <li ><a href="#" id="tabAirfare">Airfare</a></li>
           <li ><a href="#" id="tabPackage">Package</a></li>
       </ul>
  </div>

ここに私のjavascriptがあります。

// I don't want to input 1 in the function tabSelector 
// I want to get parent's sibling value automatic and 
// change somthing in li class.

$('#tabHotel').click(function(){
    tabSelector(1);
});
4

3 に答える 3

3

index()を使用できます。

$("#tabs").on("click", "li", function(){
   alert($(this).index());
});

あなたの場合:

tabSelector($(this).index() + 1 );

デモ:

http://jsfiddle.net/P3KjZ/1/

于 2013-05-10T08:55:21.883 に答える
1

jQuery のindex()メソッドを使用してこれを実現できると思います。

index() - 引数が .index() メソッドに渡されない場合、戻り値は、兄弟要素に対する jQuery オブジェクト内の最初の要素の位置を示す整数です。

要素のコレクションに対して .index() が呼び出され、DOM 要素または jQuery オブジェクトが渡された場合、.index() は、元のコレクションに対する渡された要素の位置を示す整数を返します。

jsFiddle の例を次に示します。


技術番号 (最初は 0 に等しい) には、次を使用します。

$('li').on('click', function(){
   console.log($(this).index());
});

リテラル番号 (最初の要素が 1 に等しい) の場合は、代わりにインデックスに 1 を追加します。

$('li').on('click', function(){
   console.log($(this).index()+1);
});
于 2013-05-10T08:53:39.210 に答える