对于当前代码,当单击按钮时,它将从完成输入中获取值并分别将它们显示到3输入字段。
假设我想更改done输入字段中的值,当更新值时,3个输入字段中的旧值将被new替换。 现在,更新后的值只是在原始值之后添加而不是替换它。我的代码人员出了什么问题?
$(".ok").on('click', function() {
var set = $(this).closest('tr').find('.done').val();
if ( set ){
$(this).closest('tr').find('.text').each(function(){
$(this).val( $(this).val() + set );
})
}
});
<table>
<tr>
<td>
<input type="button" value="ok" class="ok"></td>
<td>done<input type="text" value="100" class="done" \> </td>
<td>text1<textarea class="text">hi</textarea> </td>
<td>text2<textarea class="text">hello</textarea> </td>
<td>text3<textarea class="text">sup</textarea> </td>
</tr>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
答案 0 :(得分:1)
$(".ok").on('click', function() {
var set = $(this).closest('tr').find('.done').val();
if (set) {
$(this).closest('tr').find('.text').each(function() {
$(this).val($(this).attr("data-value") + set);
})
}
});
<table>
<tr>
<td>
<input type="button" value="ok" class="ok"></td>
<td>done<input type="text" value="100" class="done" \> </td>
<td>text1<textarea class="text" data-value="hi">hi</textarea> </td>
<td>text2<textarea class="text" data-value="hello">hello</textarea> </td>
<td>text3<textarea class="text" data-value="sup">sup</textarea> </td>
</tr>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
答案 1 :(得分:0)
请改为尝试:
$(this).val( $(this).val(set));
答案 2 :(得分:0)
您无需将set
添加到$(this).val()
,只需使用$(this).val(set);
更新值即可设置。像这样的东西:
$(".ok").on('click', function() {
var set = $(this).closest('tr').find('.done').val();
if ( set ){
$(this).closest('tr').find('.text').each(function(){
$(this).val(set);
})
}
});
<table>
<tr>
<td>
<input type="button" value="ok" class="ok"></td>
<td>done<input type="text" value="100" class="done" \> </td>
<td>text1<textarea class="text">hi</textarea> </td>
<td>text2<textarea class="text">hello</textarea> </td>
<td>text3<textarea class="text">sup</textarea> </td>
</tr>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>