7

マークアップがあります

 <table>
    <tr id="1">
        <td colspan="4">
            <p class="que">
                1. Who are you?</p>
        </td>
    </tr>
    <tr class="ans">
        <td>
            <input type="checkbox" />Student
        </td>
        <td>
            <input type="checkbox" checked="true" />Developer
        </td>
        <td>
            <input type="checkbox" />Other
        </td>
        <td>
            <input type="text" />
        </td>
    </tr>

</table>​​​

ここでは、チェックボックスがオンになっている特定の td のインデックスを取得したいと考えています。たとえば、ここでは 1 にする必要があります。しかし、行のインデックスのように見えるたびに 0 を取得しています。これが私が使用したjqueryコードです。

   var answers = $('table tr.ans');
 $.each(answers, function () {
  var answer = $(this).find("input[type='checkbox']:checked").index(); 
    alert(answer);                   
  });​

ここにフィドル があります特定のtdのインデックスを取得するにはどうすればよいですか? ありがとう

4

2 に答える 2

17

あなたはそれを行うことができます

$("table tr.ans input[type='checkbox']:checked").parent().index();

チェックボックスから に戻るだけ<td>でよく、その時点で stright 呼び出しがうまくいき.indexます:

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

実際に見てください

ループ内でこれを行っているため、より適切な適合は

var answer = $(this).find("input[type='checkbox']:checked").parent().index();
于 2012-05-16T07:30:05.827 に答える
2

行を次のように変更します。

var answer = $(this).find("input[type='checkbox']:checked").parent().index(); 

tdこれにより、jquery セレクターで選択した入力の親であるのインデックスが得られます。

于 2012-05-16T07:30:35.790 に答える