javascript - 我如何克隆并删除每一行中的一行

标签 javascript jquery html

我可以克隆第一行和最后一行,但无法克隆第 2、3、4 等行,那么我如何定位这些行来分别克隆和删除它们。

现在我必须写垃圾,这样我才能发帖,因为我的东西有太多代码,真的男人来吧,这不是 esayflow 是吗 XD

demo

$('button[name=add]').on('click', function() {
  var cloned = $('#table1 tr:last').clone(true);

  $('#table1').append(cloned);
})
<link href="http://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-bordered" id="table1">
  <tr>
    <th>1</th>
    <th>2</th>
    <th>3</th>
    <th>4</th>
    <th>5</th>
  </tr>
  <tbody>
    <tr id="2">
      <td>2</td>
      <td>
        <select name="numero" id="" class="form-control">
          <option value="">a</option>
          <option value="">b</option>
          <option value="">c</option>
          <option value="">d</option>
          <option value="">e</option>
          <option value="">...</option>
        </select>
        <button name="add">+</button>
        <button name="erase">-</button>
      </td>
      <td><input type="number" min="0" class="form-control"></td>
      <td><input type="number" min="0" class="form-control"></td>
      <td><input type="number" min="0" class="form-control"></td>
    </tr>
    <tr>
      <td>3</td>
      <td>
        <select name="numero" id="" class="form-control">
          <option value="">1</option>
          <option value="">2</option>
          <option value="">3</option>
          <option value="">4</option>
          <option value="">5</option>
          <option value="">...</option>
        </select>
        <button name="add">+</button>
        <button name="erase">-</button>
      </td>
      <td><input type="number" min="0" class="form-control"></td>
      <td><input type="number" min="0" class="form-control"></td>
      <td><input type="number" min="0" class="form-control"></td>
    </tr>
  </tbody>
</table>

最佳答案

如果克隆无法正常工作,请使用“outerHTML”并将其附加到最近的“tbody”。

如下:

$('button[name=add]').on('click', function() {

  var cloned = $(this).closest('tr')[0].outerHTML;

  $(this).closest('tbody').append(cloned);

});

删除行:

$('button[name=minus]').on('click', function() {

  $(this).closest('tr').remove();

});

关于javascript - 我如何克隆并删除每一行中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53312953/

相关文章:

javascript - 如何使用ajax将数据从Javascript传递到PHP

javascript - 将 highcharts 转换为波斯语图像

javascript - 如何为小部件的选项指定默认值?

html - 基本网页顶部的差距?

javascript - 在 Chrome 中使用 React 添加新的 DOM 项目不会保持预期的滚动位置

javascript - ClientScript 在 C# 类上无法正常工作

jquery - Cordova:无法调用未定义的方法 'exec'

javascript - Jssor 列表 slider 和 X-Editable

javascript - 浏览器问题 :Branching Select Drop Down Not Supporting in IE 7 or 8

html - 如何在 Firefox 中为掩码设置自定义位置?