1

編集:気になる人にとっては、問題は非常に単純だったので見落としていました。右側の列が余分なコンテンツを含む列である場合、テーブルを使用していたため、左側の列を変更しようとするためです。高さを大きくしますが、テキストサイズを小さくしても実際には修正されないため、ループが発生します。解決策は、代わりに独立した div を使用することでした! これが誰かを助けることを願っています!

私が書こうとしているいくつかのjQueryに少し問題があります。私がやりたいのは、同じクラスのすべての div を通過することです。その div の高さが 25px を超えている場合は、1 行に収まるまでフォント サイズを 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

3 つのライナーの回避策:

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