我有这样的表:
<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);
但没有......有人能指出我正确的答案吗?
答案 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>
参考: