0

我有一个问题,我需要将父 div 的高度调整为子 div 中最长文本的长度,但我需要连续测试所有 div 并找到最长的文本并将该宽度用作值该行中所有父 div 的高度。然后我需要相同的循环函数来增加jQuery选择器,它开始选择一个类名“row-1”到下一行,即row-2,然后遍历所有这些并设置它们的高度......然后到第三row, row-3 等等,直到服务器端查询返回的所有行都经过测试并调整了它们的行高。听起来很奇怪,但它看起来是这样的:

http://ccs.btcny.net/redhook/

我正在使用 PHP 创建行并添加类名,并且我有一个函数可以干净快速地输出标记!

但如果这有助于 PHP 和整体逻辑如下:

从第一行中的 1 个项目开始,然后在遍历查询时向每一行添加 1 个项目,直到检索到所有项目。然后在创建新行时缩小所有内容。

我让这个 jquery 函数在下面逐行运行......但我需要一个循环函数,直到所有项目都被检索到。这是我能够完成的:

$('.row-1 div.article-list-title').each(function() {
            maxWidth = maxWidth > $(this).width() ? maxWidth : $(this).width();

            var titwidth = $(this).width();
            console.log(titwidth);
            });

        $('.row-1').each(function() {
              $(this).height(maxWidth);
            });
$('.row-2 div.article-list-title').each(function() {
            maxWidth = maxWidth > $(this).width() ? maxWidth : $(this).width();

            var titwidth = $(this).width();
            console.log(titwidth);
            });

        $('.row-2').each(function() {
              $(this).height(maxWidth);
            });

/* And so on */

任何帮助深表感谢!

提前感谢您帮助我!

4

1 回答 1

0

我认为我对你试图用这个做什么了解不够,所以我会保存“我不会这样做”的演讲。

不过,我认为这会给你你想要的(如果你想使用 jQuery)。

heights = new array();
/** Loop through the title classes **/
$('div.article-list-title').each(function(){
  var $this = $(this),
    currentRow = $this.parent(),
    x = 1;
  /** Match the parent row class name **/ 
  while(! currentRow.hasClass("row-"+ x)) x++;
  if (heights.length < x) heights[x] = 0;
  if ($this.width() > heights[x]) heights[x] = $this.width();
});
/** Now update all the row-x class heights **/
for (var y = 1; y <= heights.length; y++) {
  $(".row-"+y).height(heights[y]);
}

小心while(! currentRow.hasClass("row-"+ x)) x++;,如果article-list-title元素没有父row-x类元素,它将永远循环

于 2012-10-02T00:40:19.353 回答