JQuery向表添加不一致的行

时间:2014-09-06 19:40:57

标签: jquery html

我有一个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个标签的所有行添加标签。

2 个答案:

答案 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));
    }
});

Here's a fiddle

答案 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){     最大值=计数;     }     });