jQuery正在删除元素

时间:2012-11-15 13:37:40

标签: jquery html-table

我遇到了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 个答案:

答案 0 :(得分:6)

我认为jQuery不会删除任何内容。你的HTML无效。您无法在此处添加tdtr。您的浏览器只会自行删除这些元素。

答案 1 :(得分:1)

尝试将tr包裹在<table>标记中,以使html有效。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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