2016-06-12 22 views
0

クリックされたクラスによって要素のインデックスを取得しますどのように私はこのコードを持っている

<button class="remove" value="1" /> 
<button class="remove" value="2" /> 
<button class="remove" value="3" /> 
$(document).on('click', ".remove", function(e) { 
    alert($(this).index()); 
}); 

それは常に0を警告しています。ユーザーが2の値を持つbuttonをクリックした場合、それは1に警告する必要がありますが、私のコードでは0に警告します。

+4

をあなたのコードはここに絶対にうまく動作します。https:// jsfiddle.net/RoryMcCrossan/cp2rfhue/。しかし、あなたのHTMLは、 'button'要素が本当にこのような終了タグを持つべきであるので、あなたのHTMLは無効です:https://jsfiddle.net/RoryMcCrossan/cp2rfhue/1/ –

+1

あなたのボタンがクラス「remove」を持っているとすれば、私は彼らは質問に示されているように兄弟ではないが、実際にはテーブルの行やその他の要素に含まれていると推測します。ボタンをクリックするとその親アイテムが削除されるはずです。それは警告が常に0を示していると説明します。@ RoryMcCrossan - 多分OPはxhtmlを使用していますか? – nnnnnn

答えて

2

あなたが最終的に達成したい内容に応じて、それを仮定:

<button class="remove" value="34" data-myval="a"/> 
<button class="remove" value="33" data-myval="b"/> 
<button class="remove" value="32" data-myval="c"/> 

場合「値」の値を取得したい:

$(document).on('click', ".remove", function(e) { 
    alert($(this).val()); 
}); 

あなたがクリックされたかの指標取得したい場合:

$(document).on('click', ".remove", function(e) { 
    alert($(this).index()); 
}); 

をカスタム値取得したい場合:

$(document).on('click', ".remove", function(e) { 
    alert($(this).data('myval')); 
}); 
1

としては、あなたがhtml buttonを改善する必要があり、@Rory McCrossanが指摘:

$(document).on('click', ".remove", function(e) { 
 
    console.log($(this).index()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="remove" value="1">Button 1</button> 
 
<button class="remove" value="2">Button 2</button> 
 
<button class="remove" value="3">Button 3</button>

関連する問題