我有一个HTML表,每行的标签数量不一致。例如,一行可能有5个标签,另一行可能有2个标签。是否有方便的方法用包含“N / A”的标签“填充”行,以便每行有一致数量的标签?
快速举例:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
我希望能够为包含少于5个标签的所有行添加标签。
答案 0 :(得分:1)
这是一种方法。首先,遍历每一行并计算它中有多少个td元素。跟踪最高数字。
var mostTDs = 0;
$('table tr').each(function() {
var thisTDs = $(this).find('td').length;
if(thisTDs > mostTDs)
mostTDs = thisTDs;
});
然后,再次循环并说这次,如果此行中的tds数小于最大数,则循环并为每个要添加的额外单元添加td。
$('table tr').each(function() {
var thisTDs = $(this).find('td').length;
for(i = thisTDs; i < mostTDs; i++) {
$('<td/>').html('x').appendTo($(this));
}
});
答案 1 :(得分:0)
如果您知道所需的列数是&#39; max&#39;然后你可以尝试下面的jquery片段。
检查每个tr并计算其子元素。如果总td小于&#39; max&#39;,则添加td,然后添加td。
var max=5;
$('tr').each(function() {
var count = $(this).children().length;
For (int i=count; i <max:i++){
$(this).append("<td>NA</td>");
}
});
如果你不知道&#39; max&#39;然后首先运行每个函数以找到max td值。 Var Max = 0; $(&#39; tr&#39;)。each(function(){ var count = $(this).children()。length; if(count&gt; max){ 最大值=计数; } });