1

编辑:对于任何关心的人来说,问题是如此简单以至于我忽略了它,因为如果右侧的列是具有额外内容的列,我会使用表格,它会尝试更改左侧的列,因为它仍然会有更大的高度,虽然减小文本大小实际上并不能解决它,从而导致我得到循环,解决方案是使用独立的 div 代替!希望这对某人有帮助!

我正在尝试编写的一些 jQuery 有一个小问题。我想要做的是遍历具有相同类的每个 div,如果该 div 的高度大于 25px,则将字体大小减小 1px,直到它适合一行。

我的代码适用于第一个,但不能在其他 div 上运行,任何帮助都会很棒!

问候,

色木

$(document).ready(function() {
        $('.lmmteam').each(function() {
            $('.lmmteam').css('font-size', '30px');
                while( $('.lmmteam').height() > 25 ) 
                    {
                        $('.lmmteam').css('font-size', (parseInt($('.lmmteam').css('font-size')) - 1) + "px" );
                    }
            });
    });

只是想我也应该添加 html 标记,这样你就更容易了!

<table>
  <tr>
    <td class="randomclass"></td>
    <td class="lmmteam">Long text</td>
    <td class="randomclass"></td>
    <td class="randomclass"></td>
    <td class="lmmteam">Long text</td>
    <td class="randomclass"></td>
  </tr>
  <tr>
    <td class="randomclass"></td>
    <td class="lmmteam">Long text</td>
    <td class="randomclass"></td>
    <td class="randomclass"></td>
    <td class="lmmteam">Long text</td>
    <td class="randomclass"></td>
  </tr>

并且有几行,但格式保持不变。谢谢!

4

6 回答 6

3

您必须$(this)用于迭代。

见:http: //jsfiddle.net/4St7V/1/

于 2012-12-17T17:10:03.943 回答
2

您必须遍历相同的元素,然后才能使用"-=1"

$('.lmmteam').each(function() {
    $element = $(this);
    $element.css('font-size', '30px');
    while( $element.height() > 25 ) {
        $element.css('font-size', "-=1");
    }
});
于 2012-12-17T17:10:16.670 回答
1

尝试

$(document).ready(function() {
    $('.lmmteam').each(function() {
        $(this).css('font-size', '30px');
        while ($(this).height() > 25) {
            $(this).css('font-size', (parseInt($(this).css('font-size'),10) - 1) + "px");
        }
    });
});​

jsFiddle 示例

于 2012-12-17T17:08:06.990 回答
0

如果您正在使用.each(function(),也许您应该使用$(this)来迭代项目。

于 2012-12-17T17:06:52.567 回答
0

尝试

$(document).ready(function() {
        $('.lmmteam').each(function() {
            $(this).css('font-size', '30px');
                while( $(this).height() > 25 ) 
                    {
                        $(this).css('font-size', (parseInt($(this).css('font-size')) - 1) + "px" );
                    }
            });
    });
于 2012-12-17T17:08:13.740 回答
0

三班轮解决方法:

$('.lmmteam').css('font-size', '30px').filter(function(){
    return $(this).height() > 25;
}).css('font-size', '-=1px');
于 2012-12-17T17:09:36.970 回答