首页 > 解决方案 > 如何使用jquery将具有多行的表中的设置输入值设置为兄弟文本?

问题描述

我有一个看起来像这样的表,其中包含更多列(数量取决于上下文)。

    $('.action-checkbox').val(
        $(this).parent().parent().find(".col-record_id").first().text().trim()
    )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tbody>
        <tr>
            <td>
                <input type="checkbox" name="rowid" class="action-checkbox">
            </td>
            <td class="col-record_id">
            10
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="rowid" class="action-checkbox">
            </td>
            <td class="col-record_id">
            14
            </td>
        </tr>
    </tbody>

但这会设置一个空值。

我究竟做错了什么?

提前致谢。

标签: jquery

解决方案


您需要传递一个回调函数来.val()为它分配一个值,返回一个值。像这样:

$('.action-checkbox').val(function() {
  return $(this).parent().next().text().trim()
})

或者这个使用.each()

$('.action-checkbox').each(function() {
  $(this).val($(this).parent().next().text().trim())
})

$('.action-checkbox').val(function() {
  return $(this).parent().next().text().trim()
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <input type="checkbox" name="rowid" class="action-checkbox">
    </td>
    <td class="col-record_id">
      10
    </td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="rowid" class="action-checkbox">
    </td>
    <td class="col-record_id">
      14
    </td>
  </tr>
</table>


推荐阅读