gpt4 book ai didi

javascript - 动态在表尾添加TR

转载 作者:行者123 更新时间:2023-11-29 21:52:26 24 4
gpt4 key购买 nike

当我输入输入文本 (.item-input) 时,它应该在 table 的底部添加一个新的 tr - 它应该从 class="template-row" 复制并将类名更改为 class="row" (仅动态新建 tr 在底部)

如果底部输入为空,它也不应该在底部继续添加新的 tr (new `tr')

出于某种原因,它被添加到表格底部一次,class="template-row" tr 在顶部被删除,这是不应该发生的吗?

例如:

<style>
.template-row { display: none; }
</style>

<table>
<tr class="template-row">
<td> <input class='item-input' type="text"> </td>
</tr>
<tr class="row">
<td> <input class='item-input' type="text"> </td>
</tr>
</table>

j查询:

$(document).ready(function() {
$('.item-input').on('keydown', function (e) {
var itemName = $.trim($(this).val());

if (itemName != '') {
var templateRow = $(".template-row");

$('table tr:last').after(templateRow).removeClass('template-row').addClass("row");
}
});
});

最佳答案

jquery:
$(document).ready(function() {
$('.item-input').on('keyup', function (e) {
var itemName = $.trim($(this).val());

if (itemName.length > 0 && $(this).data("copied") == undefined ) {
var templateRow = $(".template-row").clone(true).removeClass('template-row').addClass("row");
$('table').append(templateRow);
$(this).data("copied", true);
}
});
});
    .template-row { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<table>
<tr class="template-row">
<td> <input class='item-input' type="text"> </td>
</tr>
<tr class="row">
<td> <input class='item-input' type="text"> </td>
</tr>
</table>

每当先前的输入被填充时,此代码将添加一个新的输入。每个输入它只会执行一次。

  • $(this).data("copied") 检查数据属性copied。如果存在,则输入之前已填充并创建了一个新输入。它为 tr 元素设置了一个名为:data-copied="true" 的属性。 data 实际上是 jQuery 对 attr("data-copied") 的简写。
  • clone(true) 复制模板和事件。
  • 克隆后模板类被删除。

关于javascript - 动态在表尾添加TR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com