使用/ jQuery复制HTML

时间:2011-10-26 19:59:58

标签: jquery

我下面有一张桌子和一个链接。我需要能够点击该链接,复制上面的表格及其所有内容并将其粘贴到原始表格下方。

<table>
...
</table>
<br>

<a href="#" id="copyTbl">copy</a>

我试过这样的事,但失败了:

$("#copyTbl").click(function() {
    $(this).closest("table").html().clone().appendTo("br");
});

我不正确地将它串起来了吗?

5 个答案:

答案 0 :(得分:4)

那里有一些问题。 closest寻找第一个匹配的祖先。由于链接未包含在表中,因此不匹配。您需要根据您的完整html结构将其匹配不同,可能是id或其他选择器。

第二,您无法附加到br,因为appendTo将元素置于其中,br没有“内部”。您想要使用insertAfter

编辑:正如SLaks所指出的,删除html并克隆表,你无法克隆字符串。

答案 1 :(得分:3)

.html()返回一个字符串 你不能克隆一个字符串。

您应该调用.clone()来返回新的DOM节点,或者.html()来返回原始HTML字符串,但不能同时返回两者。

另外,你不能把一张桌子放在<br />里面;你应该致电insertAfter;不是appendTo

答案 2 :(得分:2)

尝试这样简短的事情:

http://jsfiddle.net/wfqa7/6/

编辑:克隆具有ID的元素时要小心:P

编辑:克隆http://jsfiddle.net/wfqa7/8/

时处理ID

答案 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