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>,此时直接调用.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 回答