我需要在下面的表格布局中获取两个windows-detail-spec-label
类之间的所有windows-detail-spec-group
的数量 - 所以我可以使用该数字来重新排列不同屏幕尺寸的表格。
我如何计算它们以便得到正确的数字?
对于第一组元素,它应该是2
,因为windows-detail-spec-label
在两个内容中出现两次(注意:下一个windows-detail-spec-group
位于第二个.row-label
tr
)
我目前的代码:
$('.windows-details-spec-group').each(function () {
var rowspanCount = $(this).nextUntil('.windows-details-spec-group').filter('.windows-details-spec-label').length;
$(this).unwrap().next('tr.row-default').prepend(this);
$(this).attr({
colspan: 1,
rowspan: rowspanCount // need this variable to be correct
});
});
所以基本上我需要计算一个类在两个元素之间出现的次数,无论DOM在哪里。
答案 0 :(得分:2)
在我看来,您需要对感兴趣点附近的DOM结构做出一些额外的合理假设 - “无论DOM中的哪个地方”过于通用,您实际上都很难正确实施。
假设任何td.windows-details-spec-group
将成为其父行的唯一子项,并且对于td.windows-details-spec-label
(这在某些情况下似乎就是这种情况)是相同的,您可以这样做:
$('.windows-details-spec-group').each(function () {
var rowspan = $(this)
.closest("tr")
.nextUntil("tr:has(.windows-details-spec-group)")
.find(".windows-details-spec-label")
.length;
});
答案 1 :(得分:1)
$('.windows-details-spec-group').each(function () {
var rowspanCount = $(this).nextUntil('.windows-details-spec-group').find(".windows-detail-spec-label").length;
$(this).attr({
colspan: 1,
rowspan: rowspanCount // need this variable to be correct
});
});