查找元素的JQuery位于列表中

时间:2017-05-10 09:17:57

标签: javascript jquery html

我有一个包含输入的表,我正在尝试获取他们正在使用的输入的索引。 例如



$(document).on('keyup', '.inputs input', function(event) {
  var inputVal = $(this).val();
  var inputListVal = $(this).parent('tr').index(this); <!-- This is the bit thas not working -->
  console.log(inputListVal);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <!-- I want this index if they are typing init -->
    <th><input type="text" name=""></th>
  </tr>
</table>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:2)

使用closest() / .parents()遍历TR元素。要获取输入的索引,然后在父级中检索输入,请使用index()

使用

 var inputListVal = $(this).closest('tr').find('input').index(this);

$(document).on('keyup', 'input', function(event) {
  var inputListVal = $(this).closest('tr').find('input').index(this);
  console.log(inputListVal);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <!-- I want this index if they are typing init -->
    <th><input type="text" name=""></th>
  </tr>
</table>

注意:从零开始的索引

答案 1 :(得分:2)

试试这个$(this).parent('tr th').index();并且你的html中没有工作的{key}事件class="inputs"没有。tr th它会从th找到tr的索引

&#13;
&#13;
$(document).on('keyup', 'input', function(event) {
  var inputVal = $(this).val();
  var inputListVal = $(this).parent('tr th').index();
  console.log(inputListVal);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <!-- I want this index if they are typing init -->
    <th><input type="text" name=""></th>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

$(document).on('keyup', 'input', function(event) {
  var inputVal = $(this).val();
  var inputListVal = $(this).parent().index(); 
  console.log(inputListVal);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <!-- I want this index if they are typing init -->
    <th><input type="text" name=""></th>
  </tr>
</table>

试试这个

答案 3 :(得分:0)

$(document).on('keyup', 'input', function(event) {
  var inputListVal = $('input').index(this);
  console.log(inputListVal);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <th><input type="text" name=""></th>
    <!-- I want this index if they are typing init -->
    <th><input type="text" name=""></th>
  </tr>
</table>

  

这是最简单的答案