jquery - 如何通过jquery获取当前输入字段索引

标签 jquery html input html-table

我有以下 html 表格布局:

<table id="mytable">
<tbody>
<tr>
    <td><input type="text" value="" /></td>
    <td><input type="text" value="" /></td>
    <td><input type="text" value="" /></td>
    <td>Some cell text</td>
    <td></td>
    <td><input type="text" value="" /></td>
    <td></td>
  </tr>
  <tr>
    <td><input type="text" value="" /></td>
    <td><input type="text" value="" /></td>
    <td>Some cell text</td>
    <td></td>
    <td>Some cell text</td>
    <td><input type="text" value="" /></td>
  </tr>

</tbody>
</table>

单击任何输入字段时,我需要知道相应行的当前输入字段索引,但无法找到获取它的方法。我可以通过以下公式获得每行的输入字段总数(长度):

var thisRow = $(this).closest('tr');
var inputLength = thisRow.find('input[type="text"]').length;

例如,第一行的 inputLength4,第二行是 3。但是,当用户点击第一行的第二个输入字段(应该是 1)时,如何获取输入索引?

[注意:我不能使用 td 索引代替 input 字段索引,因为您可能会看到可能有一些 td 没有 input 字段。因此,如果我运行 for 循环,它就无法按预期执行。]

最佳答案

您可以使用 index()方法如下:

$(':input').on('click', function() {
  console.log($(this).closest('tr').find(':input').index(this));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="mytable">
  <tbody>
    <tr>
      <td>
        <input type="text" value="" />
      </td>
      <td>
        <input type="text" value="" />
      </td>
      <td>
        <input type="text" value="" />
      </td>
      <td>Some cell text</td>
      <td></td>
      <td>
        <input type="text" value="" />
      </td>
      <td></td>
    </tr>
    <tr>
      <td>
        <input type="text" value="" />
      </td>
      <td>
        <input type="text" value="" />
      </td>
      <td>Some cell text</td>
      <td></td>
      <td>Some cell text</td>
      <td>
        <input type="text" value="" />
      </td>
    </tr>
  </tbody>
</table>

另见 closest()

关于jquery - 如何通过jquery获取当前输入字段索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194719/

相关文章:

javascript - 相对于 HTML 表格行中的第 n 行移动 div 容器滚动位置

javascript - 将平面 JSON 文件转换为分层 json 数据,如flare.json [d3 示例文件]

javascript - iframe 无法与表单中的标签一起使用

C "gets"命令输入只是跳到结束而不是等待我的输入

html - IE8中输入的css样式问题

javascript - 如何使用 jQuery appendTo 在同一行中追加标签文本?

javascript - Google map 信息窗口在 map 外部单击时打开

jquery 更改文本并将其替换为链接

整数和字符串的 Python 输入验证

javascript - 如何强制用户选择至少一个单选框