Итерация каждой таблицы в аккордеоне только один раз с использованием jQuery

0

У меня есть аккордеон с 5 разделами. Внутри каждой секции находится таблица. Если эта таблица содержит более 10 строк, добавляется ссылка View More. Моя проблема в том, что ссылка "Подробнее" добавляется 5 раз в первую таблицу. 4 раза во второй таблице. 3 раза в третьей таблице. И так далее...

Как добавить ссылку View More только один раз на каждую таблицу, где есть более 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");
    }
}); });

Заранее спасибо за вашу помощь.

  • 0
    Можете ли вы показать свой HTML, а также.
Теги:
each
append
insertafter

1 ответ

1
Лучший ответ

Причина в том, что в вашем insertAfter selctor вы предоставляете 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 () {
...
});
  • 0
    Это работало отлично. Но теперь мой босс хочет, чтобы tr был вставлен в tbody как последний ряд. Так что это относится к телу. И попытка использовать jQuery append (". Last") не работает. Есть идеи. Заранее спасибо!
  • 0
    @ MWA Извините, не понимаю, можете ли вы поставить их на скрипку?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню