javascript - 如何使用其样式在javascript中复制行

标签 javascript jquery html css

我想复制最后一行及其所有内容,包括 span 和 input 以及 CSS 类,在同一个表格的最后一行下面。我该怎么做?

$("#addRow").click(function() {
      var tableditTableName = '#AddCatTbl';
      var newID = parseInt($(tableditTableName + " tr:last").attr("id")) + 1;
      var x = $(tableditTableName + " tr:last").attr("style");
      var clone = $("table tr:last").clone();
      $(".tabledit-data span", clone).text("");
      $(".tabledit-data input", clone).val("");
      clone.appendTo("table");
      $(tableditTableName + " tr:last").attr("id", newID);
      $(tableditTableName + " tr:last").attr("style", x);
      $(tableditTableName + " tr:last td .tabledit-span.tabledit-identifier").text('newID');
      $(tableditTableName + " tr:last td .tabledit-input.tabledit-identifier").val('newID');
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table id="AddCatTbl" class="table table-bordered table-striped">
      <tr id="22">
        <td><span class="tabledit-span tabledit-identifier">22</span><input class="tabledit-input tabledit-identifier" type="hidden" name="id" value="22" disabled=""></td>
        <td class="tabledit-view-mode"><span class="tabledit-span">Coconuts</span><input class="tabledit-input form-control input-sm" type="text" name="Category Name" value="Coconuts" style="display: none;" disabled=""></td>
        <td class="tabledit-view-mode"><span class="tabledit-span">Copra</span><input class="tabledit-input form-control input-sm" type="text" name="Category Type" value="Copra" style="display: none;" disabled=""></td>
        <td style="white-space: nowrap; width: 1%;">
          <div class="tabledit-toolbar btn-toolbar" style="text-align: left;">
            <div class="btn-group btn-group-sm" style="float: none;"><button type="button" class="tabledit-edit-button btn btn-sm btn-warning" style="float: none;"><span class="glyphicon glyphicon-pencil"></span></button><button type="button" class="tabledit-delete-button btn btn-sm btn-danger" style="float: none;"><span class="glyphicon glyphicon-trash"></span></button></div>
            <button type="button" class="tabledit-save-button btn btn-sm btn-success" style="display: none; float: none;">Save</button>
            <button type="button" class="tabledit-confirm-button btn btn-sm btn-default" style="display: none; float: none;">Confirm</button>
            <button type="button" class="tabledit-restore-button btn btn-sm btn-warning" style="display: none; float: none;">Restore</button>
          </div>
        </td>
      </tr>
     <button id="addRow">Add Row</button>
    </table>

最佳答案

将您想要的样式声明为 CSS 类并将其分配给您想要的克隆元素,例如让 styleClass:

.styleClass{
color:red
}

所以不是这个:

$(tableditTableName + " tr:last").attr("style", x);

使用这个addClass() jQuery 函数:

$(tableditTableName + " tr:last").addClass("styleClass");

这是一个演示:

 $("#addRow").click(function() {
      var tableditTableName = '#AddCatTbl';
      var newID = parseInt($(tableditTableName + " tr:last").attr("id")) + 1;
      var x = $(tableditTableName + " tr:last").attr("style");
      var clone = $("table tr:last").clone();
      $(".tabledit-data span", clone).text("");
      $(".tabledit-data input", clone).val("");
      clone.appendTo("table");
      $(tableditTableName + " tr:last").attr("id", newID);
      $(tableditTableName + " tr:last").addClass("styleClass");
      $(tableditTableName + " tr:last td .tabledit-span.tabledit-identifier").text(newID);
      $(tableditTableName + " tr:last td .tabledit-input.tabledit-identifier").val(newID);
    });
.styleClass{
color:red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="AddCatTbl" class="table table-bordered table-striped">
      <tr id="22">
        <td><span class="tabledit-span tabledit-identifier">22</span><input class="tabledit-input tabledit-identifier" type="hidden" name="id" value="22" disabled=""></td>
        <td class="tabledit-view-mode"><span class="tabledit-span">Coconuts</span><input class="tabledit-input form-control input-sm" type="text" name="Category Name" value="Coconuts" style="display: none;" disabled=""></td>
        <td class="tabledit-view-mode"><span class="tabledit-span">Copra</span><input class="tabledit-input form-control input-sm" type="text" name="Category Type" value="Copra" style="display: none;" disabled=""></td>
        <td style="white-space: nowrap; width: 1%;">
          <div class="tabledit-toolbar btn-toolbar" style="text-align: left;">
            <div class="btn-group btn-group-sm" style="float: none;"><button type="button" class="tabledit-edit-button btn btn-sm btn-warning" style="float: none;"><span class="glyphicon glyphicon-pencil"></span></button><button type="button" class="tabledit-delete-button btn btn-sm btn-danger" style="float: none;"><span class="glyphicon glyphicon-trash"></span></button></div>
            <button type="button" class="tabledit-save-button btn btn-sm btn-success" style="display: none; float: none;">Save</button>
            <button type="button" class="tabledit-confirm-button btn btn-sm btn-default" style="display: none; float: none;">Confirm</button>
            <button type="button" class="tabledit-restore-button btn btn-sm btn-warning" style="display: none; float: none;">Restore</button>
          </div>
        </td>
      </tr>
     
    </table>
    <button id="addRow">Add Row</button>

关于javascript - 如何使用其样式在javascript中复制行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46631329/

相关文章:

php - 是否可以在 ajax 调用和正常请求之间交换 session 数据? (在 Wordpress 中)

javascript - Jquery/Ajax 表单在 IE7 上不起作用

javascript - 输入标签后换行

javascript - 如何自动求和下拉菜单和单选选择上的值

javascript - setState 不适用于 Switch block

javascript - angularjs ng-repeat中的工具提示?

php - 表单元素未使用正确的 jquery 移动设计插入

jquery - 如何使用 jQuery 模糊事件向 Perl 脚本发出 AJAX 请求?

javascript - 在释放鼠标按钮之前激活链接

javascript - Jquery jquery.sumoselect