2016-06-28 6 views
1

現在、固定サイズのdivに収まるようにfont-sizeのサイズを変更しようとしています。私は、JavaScriptコードのこの興味深い作品が異なるdiv要素がNGリピート式の中なので、ng-repeatでフォントサイズを自動的に変更する

<div ng-repeat="defect in surface.defects" class="new-page"> 
      <div id="defect-text"> 
            <div> 
             <div id="defect-title">{{ 'TYPE' | translate }}:</div> 
             {{ defect.type }} 
             <div id="defect-title">Emplacement du défaut:</div> 
             {{ defect.location }} 
             <div id="defect-title">Dimension du défaut:</div> 
             {{ defect.dimension }} 
             <div id="defect-title">Actions suggérées:</div> 
             {{ defect.future_operation }} 
             <div id="defect-title">Détail technique du défaut:</div> 
             {{ defect.description }}</div> 
           </div></div> 

ただし、次のHTMLコードのために非常によく

 $('#defect-text div').css('font-size', '1em'); 

      while ($('#defect-text div').height() > $('#defect-text').height()) { 
       $('#defect-text div').css('font-size', (parseInt($('#defect-text div').css('font-size')) - 1) + "px"); 
      } 

仕事をしているのjavascriptの私の作品を見つけましたコードは、最初のものの希望のサイズを持つすべてのコンテナのフォントのサイズを変更します。 ng-repeatの現在の要素を選択し、コンテナに合わせて自分のCSSだけを変更するコードに変更する方法はありますか?

$('#defect-text div').css('font-size'...) 

あなたはid="defect-text"要素のすべての<div>子孫(どのように深い関係なく)を選択し、この時にそれらを修正している:私はあなたの問題は、実際にスコープの一つだと思い事前

答えて

1

感謝時間。技術的にID MUST(同じIDを持つ複数の要素がある場合は動作が明確に定義されていません)、セレクタがの要素をすべて取得していると思いますこの特定のループの内側に欲しい。

私はあなたのngのリピートブロックを変更して、あなたはユニークな欠陥のすべて<div>子孫を得るために$("#"+defect.id + " div")を使用することができます

<div id="{{ defect.id }}"> 

のような角度の式言語を使用してIDを交換することをお勧めします。

また、すべての子孫の代わりに子セレクタ"> div"を使用することを検討します。

+1

うんうん! Jqueryセレクタを毎回変更するために、サイズ変更コードをループに入れて、さまざまな欠陥を反復するだけでした。どうもありがとう! –

+0

これは答えとしてマークが解除されたのはなぜですか?それはうまくいっていて、誰も良い方を投稿した人はいませんでした... – InfernalRapture

+0

なぜ私の質問はアップアップされていないのですか?私はそれがよく聞かれたと思う... –

関連する問題