触发时,克隆表格的第3行(下)行。在CSS中,此行(#tr3)设置为:display:none;这是我克隆的表格行:
<tr name="tr3" id="tr3">
<td><input type="text" name="dt1" id="dt1"></td>
<td><input type="text" name="fn1" id="fn1"></td>
<td><a href="#" name="change1" id="change1">change</a></td>
<td><a href="#" name="del1" id="del1">delete</a></td>
</tr>
这是克隆行的JQuery代码。可悲的是,不是我的,所以我不明白所有这一切。
$("table tr:nth-child(4)").clone().find("input").each(function() {
$(this).val('').attr('id', function(_, id) {
return id + count;
});
具体来说,第2行的功能如何工作 - 什么是下划线?
但这是我的目的。我怎么能:
谢谢。
答案 0 :(得分:2)
为了清楚起见:
var $clone = $("table tr:nth-child(4)").clone();
如何将样式更改为克隆行的display:block
?
$clone.show();
如何更新克隆行中锚标记的ID。
$clone.find("a, input").each(function() {
$(this).val('').attr('id', function(_, id) {
return id + count;
});
});
在上面的jQuery代码中,第2行中的函数如何工作 - 什么是下划线?
下划线(_
)是有效的ECMAScript's identifier name,它仅用作占位符,以便能够获取第二个参数(id
。)
一切都完全(未经测试。)
$("table tr:nth-child(4)")
.clone()
.show()
.find("a, input").each(function() {
$(this).val('').attr('id', function(_, id) {
return id + count;
});
});
答案 1 :(得分:1)
您永远不会实际访问克隆的行。你必须将它分配给某些东西,例如
$clonedRow = $("table ...").clone();
然后你可以运行所有其他方法,最后将$clonedRow
附加到DOM,可能还有
$clonedRow.insertAfter("table ...")
您需要以某种方式剥离最后一个数字,可能使用正则表达式:
return id.replace(/\d+$/, '') + count;
_
只是一个占位符。它没有被使用,所以代码的编写者选择了一个非描述性的变量名,因为声明中需要一些东西来获取id
参数。