3

我遇到了 jQuery 的问题。我需要复制一些代码,附加在其他地方。

我喜欢复制的来源是这样的:

<div id="copyCode" style="display: none">
    <div class="ofPagedataTable">
        <tr class="page copy">
            <td class="id"><input type="text" /></td>
            <td class="sprache"><input type="text" /></td>
            <td class="description"><input type="text" /></td>
            <td class="title"><input type="text" /></td>
            <td class="keywords"><input type="text" /></td>
        </tr>
    </div>
</div> 

我正在使用的 jQuery 是这样的:

$('.addPageToPagedata').click(function(){
    html = $("#copyCode").children(".ofPagedataTable").html();
    target = $('.pagedata tbody').children(':last');    
    $(html).appendTo(target);
    });

这是一种工作,但jQuery正在拿走<tr><td>元素,它只是附加:

<input type="text">
<input type="text">
<input type="text">
<input type="text">
<input type="text">

我不知道该怎么办。如果有人可以给我一个如何解决这个问题的建议,那就太好了。

谢谢!

4

4 回答 4

6

我不认为 jQuery 删除任何东西。您的 html 无效。你不能把tdand放在tr这里。您的浏览器只会自行删除这些元素。

于 2012-11-15T13:40:10.127 回答
1

尝试包装trin<table>标签,以使 html 有效。

于 2012-11-15T13:41:34.617 回答
1

这不起作用,因为您的标记无效 -tr只能在table标签内。当浏览器看到您的无效标记时,它会尝试自动修复它,因此它只是删除所有您的trtd元素。

于 2012-11-15T13:41:51.220 回答
1

jquery 是基于标签 tbody 工作的,但是你这里没有表。如果没有表, tr 和 td 没有任何意义,因为基本上你是在尝试对列和行进行操作,而它们甚至不存在。因此,将它们包装在一张桌子上。只有这样才能奏效。

于 2012-11-15T13:45:45.040 回答