jquery只能添加关闭元素标记(标记)吗?

时间:2013-02-06 18:41:29

标签: jquery html append

给定表中的第n行,jquery只能添加标记来关闭表

        <tr class="eop">
            <td> 8/31 </td>
            <td> XYZ </td>
            <td> 2 </td>
            <td> 92.00 </td>
        </tr>

   </tbody>            --
</table>                 |
<table>                  --     //  inserted markup
   head jquery var       |
   <tbody>             --

我正在尝试使用:

$('tr.eop').append("</tbody></table><table>+head+<tbody>");   // head = table header

3 个答案:

答案 0 :(得分:3)

DOM由元素节点组成,一旦元素成为DOM或DOM片段的一部分,开始和结束标记就没有任何意义。

您无法将元素附加到没有结束标记的页面。如果省略结束标记,将为您创建一个标记。您也不能通过将结束标记附加为子元素来关闭父元素,而只是在父元素内创建一个新的完整元素。

如果要创建新表,请创建一个新表。

var newTable = $("<table><thead>"+head+"</thead><tbody></tbody></table>");
$('tr.eop').closest("table").after(newTable)
$('tr.eop').nextAll().appendTo(newTable.find("tbody"));

答案 1 :(得分:0)

请试试这个。看看它是否有效。

var tt = $('tr.eop');
tt.innerHTML = tt.innerHTML + '</tbody></table><table>'+head+'<tbody>';

答案 2 :(得分:0)

如果不是一个好的做法,但它有效(我不确定它是否会在某些时候失败),请看一下这个例子:

http://jsfiddle.net/MKSqy/

但是我不确定你要完成什么,你可以通过操作DOM树轻松地做类似的事情。或者更改构建应用程序的方式,而不是使用表格使用div并创建隐藏或者在需要时显示。

<div class="table">
    <div class="row">
        <div>8/31</div>
        <div> XYZ </div>
        <div> 2 </div>
        <div> 92.00 </div>
    </div>
    <div class="head" style="visible:none;"></div>
</div>

并操纵css以创建表格样式。我推荐这只是为了大小写,但 table 标签存在是有原因的,你不应该滥用 divs

编辑:我不太了解所以这就是你需要的

http://jsfiddle.net/MKSqy/1/

这样做基本上是选择第n个元素之后的下一个元素并创建一个表并将其附加到preovious表旁边。所以你不必处理关闭标签。