使用jQuery只用手风琴迭代每个表一次

时间:2013-12-05 22:05:00

标签: jquery append each insertafter

我有一个手风琴,有5个部分。每个部分内部都是一张桌子。如果该表的行数超过10行,则会追加“查看更多”链接。我的问题是在第一个表中附加了5次查看更多链接。在第二张表中有4次。在第三张表中有3次。等等...

如何在每个超过10行(或2行)的表格上只附加一次“查看更多”链接。

$(".accordion-group table tbody").each(function() {

    var row = $(this).find("tr");
    var colunm = $(this).find("tr:first td");

    row.last().addClass("last");

    var rowCount = row.length;
    var columnCount = colunm.length;

    if (rowCount > 10) {
        $("<tr><td colspan=" + columnCount + " class=\"view_more_accordian\" style=\"text-align:center;\">View more</td></tr>").insertAfter(".last");
    }
}); });

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

原因是你的insertAfter selctor中你提供了tbody并将返回所有这些并插入所有可用的tbody之后,而只是将它附加到当前的tbody即this

更改

$("<tfoot><tr><td colspan=" + columnCount + " class=\"view_more_accordian\" style=\"text-align:center;\">View more</td></tr></tfoot>")
  .insertAfter("tbody");

$("<tfoot><tr><td colspan=" + columnCount + " class=\"view_more_accordian\" style=\"text-align:center;\">View more</td></tr></tfoot>")
  .insertAfter(this);

另外,您可以避免使用第一个.each(基于您显示的代码)而不是

$(".accordion-group table tbody").each(function () {
...
});