我正在使用HTML表格,但我想根据浏览器大小动态更改表格的布局。我的基本代码如下:
<tr>
<td class="row">E1</td>
<td class="row">E2</td>
<td class="row">E3</td>
<td class="lastRow">E4</td>
</tr>
然后JQuery应该计算行数并相应地插入行。 我的JQuery现在看起来像这样:
$('td.row').append('</tr><tr>');
然而,它仍在一行显示所有元素。知道为什么吗?
答案 0 :(得分:1)
这是使用流畅CSS布局的理想场所。
不要使用TD
代替divs
标记,而是将float:left
标记替换为append
此外,dom
没有按照您的想法行事。它是{{1}}操纵而不是字符串操作 - 你不能用它来直接改变你想象的方式。
答案 1 :(得分:0)
试着看.after();功能:
答案 2 :(得分:0)
我认为您需要尝试使用此选择器
假设您的表格中有一个名为example
的ID,请尝试使用
$("#exmaple tr:last").append('<tr></tr>');
答案 3 :(得分:0)
$('</tr><tr>').insertAfter('.row');
答案 4 :(得分:0)
你想要对tr元素进行追加,而不是在td.row
上答案 5 :(得分:0)
您需要不在构建HTML标记方面进行思考。没有办法将结束/打开</tr><tr>
拼接到DOM中(没有一些丑陋的.innerHTML
黑客攻击)。
相反,在当前行之后创建一个新行,并将单元格重新定位到该新行中。
var row_cells = $('td.row').slice(1);
row_cells.each( function( i, el ) {
$('<tr>').insertAfter( row_cells.eq(i).parent() )
.append( row_cells.eq(i) );
});
DEMO: http://jsfiddle.net/EDf5a/
或许您想为每个单元格添加一个新行:
var row_cells = $('td.row');
var row = row_cells.parent();
row_cells.each(function(i, el) {
$('<tr>').insertBefore(row)
.append(row_cells.eq(i));
});