我下面有一张桌子和一个链接。我需要能够点击该链接,复制上面的表格及其所有内容并将其粘贴到原始表格下方。
<table>
...
</table>
<br>
<a href="#" id="copyTbl">copy</a>
我试过这样的事,但失败了:
$("#copyTbl").click(function() {
$(this).closest("table").html().clone().appendTo("br");
});
我不正确地将它串起来了吗?
答案 0 :(得分:4)
那里有一些问题。 closest
寻找第一个匹配的祖先。由于链接未包含在表中,因此不匹配。您需要根据您的完整html结构将其匹配不同,可能是id
或其他选择器。
第二,您无法附加到br
,因为appendTo
将元素置于其中,br
没有“内部”。您想要使用insertAfter
。
编辑:正如SLaks所指出的,删除html
并克隆表,你无法克隆字符串。
答案 1 :(得分:3)
.html()
返回一个字符串
你不能克隆一个字符串。
您应该调用.clone()
来返回新的DOM节点,或者.html()
来返回原始HTML字符串,但不能同时返回两者。
另外,你不能把一张桌子放在<br />
里面;你应该致电insertAfter
;不是appendTo
。
答案 2 :(得分:2)
答案 3 :(得分:1)
我不正确地将它串起来了吗?
是和否。 .html()
返回一个字符串,该字符串没有.clone()
方法。 1 克隆元素,或使用.html()
:< / p>
$("#copyTbl").click(function() {
$(this).closest("table").clone().insertAfter("br");
// or
$("br").after($(this).closest("table").html());
});
1 字符串是不可变的,因此不需要克隆方法。
答案 4 :(得分:1)
最近意味着链接在表格内。 许多方法可以做到这一点: http://jsbin.com/aqamok