给定表中的第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
答案 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)
如果不是一个好的做法,但它有效(我不确定它是否会在某些时候失败),请看一下这个例子:
但是我不确定你要完成什么,你可以通过操作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 。
编辑:我不太了解所以这就是你需要的
这样做基本上是选择第n个元素之后的下一个元素并创建一个表并将其附加到preovious表旁边。所以你不必处理关闭标签。