我有一个包含多个表的页面,我希望在一个值中包含每个表的行数。有一个整体表,然后是子类别的其他表。整个表格可能会删除一行,这将需要更新自身和删除后的子类别。
示例:
Overall table: th 1: Items (50)
Cat 1 table: th 1: Items (20)
Cat 2 table: th 1: Items (30)
我正在使用jquery,并且我正在尝试编写一个函数,该函数将仅更新当前所有的表,但是在尝试更改th元素的html时,我遇到了上下文问题。
$('table th:nth-child(1)').html("Items (" + $('tbody').children().length + ")");
我正在尝试编写一个1行的解决方案,而不是对每个表进行id选择的暴力方法。我不确定如何将上下文保持在我所在的当前表中,而不是选择所有tbody元素。有没有办法使用context或$(this)变量?
发布于 2020-07-25 08:56:30
这会将所有<th>
元素设置为相同的值(使用.text()
比使用.html()
更好):
$('table th:nth-child(1)').text("Items (" + $('tbody tr').length + ")");
它使用一个回调函数来计算每个<th>
元素的动态文本值:
$('table th:nth-child(1)').text(function () {
var rowCount = $(this).find('tbody tr').length;
return "Items (" + rowCount + ")";
});
表达相同操作的另一种方式是使用.each()
$('table').each(function () {
var rowCount = $(this).find('tbody tr').length
$(this).find('th:nth-child(1)').text("Items (" + rowCount + ")");
});
https://stackoverflow.com/questions/63085888
复制