3
$("input").on("click", function(){
  //how do i find the the input index here?
});

次のことを行う代わりに、よりスマートな方法を見つけようとしています。良いアイデアはありますか?

$("input").eq(0).on("click", function(){
  //do something for eq(0)  
});

$("input").eq(1).on("click", function(){
  //do something for eq(1)  
});
4

5 に答える 5

7

機能を使用する必要がありindexます。これを呼び出す方法は 2 つあります。

すべての要素が兄弟の場合

すべての要素が同じ親要素の兄弟であり、その親内に他の要素がない場合は、 を使用できます$(this).index()

indexパラメータなしで が呼び出されると、兄弟間の要素の位置を取得します。したがって、親の最初の子は0、2 番目の子1などになります。

要素がすべて兄弟ではない場合

ドキュメント構造がより複雑な場合は、特定のセットを検索する必要があります。これは、検索するすべての要素を選択し、検索する要素を最初のパラメーターとして渡すことを意味します。indexOf配列で検索を行っているかのようです。

var inputs = $("input").on("click", function(){
    console.log(inputs.index(this));
});
于 2013-06-12T17:16:45.137 に答える
7

クリックした要素を jQuery のindexメソッドに渡すことができます。

var $input = $("input");
$input.on("click", function() {
   var i = $input.index(this);
});
于 2013-06-12T17:14:30.163 に答える
2

使用できますthis

$("input").on("click", function(){
    var index = $(this).index();
});

これにより、クリックされた入力のインデックスが、その兄弟入力のインデックスに関連して検索されます。例:

<div>
    <input type='text'/> //index 0
    <input type='text'/> //index 1
</div>
<div>
    <input type='text'/> //index 0
</div>
于 2013-06-12T17:13:41.870 に答える
-1

セレクターの現在の繰り返しにある DOM 要素にアクセスする場合は、 を使用します$(this)一致した要素に関連する DOM 要素の実際のインデックス (整数)を見つけたい場合は、 .index().

これを示すためにjsfiddleを作成しました。

$('.indexme').bind('click',function(){

    //$(this) is a jquery object of the currently matched DOM element
    //.index() will return the integer value of the actual index

    $(this).append($(this).index());

});
于 2013-06-12T17:14:09.130 に答える