从特定的tr元素中选择输入值

时间:2014-11-10 12:56:54

标签: javascript jquery jquery-ui

我有这样的表:

<tr id="t0" >
  <td id="0"></td>
  <td ><input name="0" style="width:20px;" type="text" />-
  <input name="1" style="width:20px;" type="text" />
  <button onclick="write(0)" >+</button></td>
</tr>
<tr id="t1" >
  <td id="1"></td>
  <td ><input name="1" style="width:20px;" type="text" />-
  <input name="2" style="width:20px;" type="text" />
  <button onclick="write(1)" >+</button></td>
</tr>

我需要从特定tr元素中的输入元素中获取所有值。 我试过以下但没有:

var t = $('table#tbl tr#'+id).find('input').val();
alert(t);

var t = $('tr'+id+':has(input)').val();
  alert(t);

但没有......有人能指出我正确的答案吗?

1 个答案:

答案 0 :(得分:1)

您可以.map获取所有值,因为.val()仅为您提供第一个输入的值。你的每一行都有一个id;由于ID是唯一的,因此您只需选择特定的行。

var t = $('#t0').find('input').map(function() {
    return this.value;
}).get();
alert(t);

var t = $('#t0').find('input').map(function() {
  return this.value;
}).get();
alert( t );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr id="t0" >
  <td id="0"></td>
  <td ><input name="0" style="width:20px;" type="text" value="test 1" />-
  <input name="1" style="width:20px;" type="text" value="test 2" />
  <button onclick="write(0)" >+</button></td>
</tr>
<tr id="t1" >
  <td id="1"></td>
  <td ><input name="1" style="width:20px;" type="text" />-
  <input name="2" style="width:20px;" type="text" />
  <button onclick="write(1)" >+</button></td>
</tr>
  </table>

参考:

  1. .map() | jQuery API Documentation