0

我需要在下表布局中获取windows-detail-spec-label两个类之间的所有数量 - 所以我可以使用该数字在不同的屏幕尺寸上重新排列表格。windows-detail-spec-group

我怎样才能算出它们,以便我得到正确的数字?

对于第一组元素,它应该是2因为windows-detail-spec-label在中间出现两次(注意:下一个windows-detail-spec-group在第二个.row-label tr

表格html布局

我当前的代码:

$('.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 中的哪个位置

4

2 回答 2

2

在我看来,您需要对感兴趣点附近的 DOM 结构做出一些额外的合理假设——“无论在 DOM 中的哪个位置”太通用了,您将很难真正正确地实现它.

假设 anytd.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;
});
于 2013-01-16T14:15:10.363 回答
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
          });
        });

在这里演示http://jsfiddle.net/NNfmS/

于 2013-01-16T14:19:25.477 回答