2011-06-24 16 views
0

私の脳は長い一日の後に揚げられ、jqueryを使用してUIにテーブルを挿入するタスクがこの週末に与えられました。Jquery insertAfter html要素リファクタ

私はhtml要素を挿入しているいくつかの大きな醜いコード行を持っています...このクリーナーを作る簡単な方法があるかどうかを見たいと思っていました。私はいくつかの行にそれを破ることができます知っているが、ベストプラクティスが存在しなければならない:



    $('#submitNewTiers').bind('click',function (e) { 

    $('<div class="tiersTables"><span><a href="" rel="#overlay">Edit Tiers </a></span><table class="visible" id="newTiersTable"><thead&gr;<tr><th>Range</th><th>List Price</th><th>Quote Price</th><th class="lastTh">Approval?</th></tr></thead></table></div>').insertAfter('div.tiersTables'); 
    $('<tbody><tr><td>HERE</td><td></td><td></td><td></td></tr></tbody>').insertAfter('#newTiersTable thead'); 
     return false; 
    }); 

答えて

1

実は、あなただけの変数に文字列としてテーブル全体を入れて、中にそれを置くために1 insertAfter();を使用することができますDOM。

安価なパフォーマンスではないので、できるだけこれらの呼び出しを少なくすることをお勧めします(append()prepend()insertAfter()など)。 HTMLドキュメント内の

+0

私はあなたの先端に感謝ダイナミックな値を後でTDに追加する必要があるため、それ以降のコールが必要になります。しかし、追加された値がある場合は、常に$ .eachを使用できます。 – Robert

+0

@Robert [テンプレート](http://api.jquery.com/category/plugins/templates/) –

1

置きHTMLコードを:

<div class="tiersTables"> 
    <span> 
     <a href="" rel="#overlay">Edit Tiers </a> 
    </span> 
    <table class="visible" id="newTiersTable"> 
     <thead> 
      <tr> 
       <th>Range</th> 
       <th>List Price</th> 
       <th>Quote Price</th> 
       <th class="lastTh">Approval?</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td>HERE</td> 
       <td></td> 
       <td></td> 
       <td></td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

はCSSでそれを隠す:

div.tiersTables { display:none; } 

その後、クリックで、それを示しています。

$('#submitNewTiers')click(function() { 
    $('.tiersTables').show(); 
}); 
+0

私は1つのテーブルを追加している場合、私はこの答えが好きですが、私はテーブルの数を増やすことができる必要があります表示。だからあなたの提案を使用して、私は複数のHTMLテーブルを作成し、それらを非表示にする必要がありますクリックで最も近いテーブルを表示します。 – Robert

+1

@Robert私の提案は次のとおりです。最初から隠しテーブルを作成してください(HTMLソースコードにハードコードされています)。次に、新しいテーブルが必要なときには、そのテーブルをクローンし、クローンをDOMに追加します(目的の場所)。 jQueryには便利な['clone()'メソッド](http://api.jquery.com/clone/)があります。 –

関連する問題