У меня есть аккордеон с 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");
}
}); });
Заранее спасибо за вашу помощь.
Причина в том, что в вашем 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 () {
...
});