在下面的代码中,单击“确定”按钮后,它将在完成的输入字段中获取值,并显示在text1,text2,text3输入字段中。
问题在于所有3列现在都具有相同的值(即hi100)。所需的结果是所有3列均显示不同的结果,即hi100,hello100,sup100,
我想知道我的代码出了什么问题。



if (typeof set == "undefined") {
  var set = $(".text").val();
}
$(".ok").on('click', function() {

  $(this).closest('tr').find(".text").val(set + $(this).closest('tr').find(".done").val());

});

<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>

最佳答案

将您的脚本更改为-

$(".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 );
        })
    }
});

09-19 10:11