请帮忙。 我试图将.val()转换为.text()反之亦然。
我真的不知道哪里出错了。
$('#result').on('click','.update',function() {
var valval = $(this).closest('tr').find('td:eq(1)').val();
$(this).closest('tr').find('td:eq(1)').text(valval);
});
和theres链接所以我希望你先打开它。我将感谢能帮助我完成工作的任何答案。 谢谢!
答案 0 :(得分:1)
您需要获取input
元素的值,现在您在.val()
元素上调用td
$(function() {
$('#result').on('click', '.update', function() {
var $td = $(this).closest('tr').find('td:eq(1)'),
$input = $td.find('input');
if ($input.length) {
$td.text($input.val());
} else {
$td.html($('<input />', {
value: $td.text()
}))
}
});
})
body {
margin: 20px;
padding: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border='1' id='result'>
<tr>
<td>hi there</td>
<td>
<input type='text' value="hello there" />
</td>
<td>
<button class='update'>update</button>
</tr>
<tr>
<td>hi there</td>
<td>hello there</td>
<td>
<button class='update'>update</button>
</tr>
</table>
答案 1 :(得分:1)
.val()
用于返回表单输入字段的value属性。您需要定位输入字段,或在第一个语句上使用text()
代替val();
var valval = $(this).closest('tr').find('td:eq(1) input').val();
或
var valval = $(this).closest('tr').find('td:eq(1)').text();
答案 2 :(得分:1)
.val()
用于表单元素
而不是$(this).closest('tr').find('td:eq(1)').val();
您可以使用$(this).closest('tr').find('input[type="text"]').val();
或$(this).closest('tr').find('td:eq(1) input').val()