2011-07-26 13 views
4

.append()を使っていくつかのWebページを構築し、生成された別の親要素に要素を追加します。私は追加された要素をスタイルしたいと思いますが、.css()を使って与えられたスタイルは適用されません。おそらくこれらの要素がまだページに追加されていないという事実のためでしょうか?ここで追加された要素のスタイル

は私のコードです:聞きしたいbodyに追加したら、

var stickyHeader = $("<div></div>"); 

$(".stickyHeader").find("th").each(function() { 
    var offset = $(this).offset().left; 
    var objWidth = $(this).width(); 

    stickyHeader.append("<span>" + $(this).html() + "</span>").css({width: objWidth, top: 0, left: offset, position: 'fixed'}); 
}); 

$("body").append("<div class=\"stickyHeader\">" + stickyHeader.html() + "</div>"); 

は私がspanのをループし、別の.each()が必要です、またはよりよい、クリーンな解決策はありますか?

spanにはページ上の別の要素から幅が与えられていることを忘れていましたので、CSSとクラスだけではできません。

+0

を見てください。 – DanielB

+0

それはちょうど私がばかだと証明されています。ヘッドアップをありがとう。私は質問に 'css()'を追加しました。 – Bojangles

+0

あなたは 'stickyHeader's'htmlを選択しています。これは' stickyHeader'のhtmlで、 ''タグで囲まれていますか?冗長ではないですか? – Phil

答えて

4

コンテナdivには適用されていますが、追加された要素ではありません。試してみてください:

var span = $("<span>" + $(this).html() + "</span>"); 
      .css({width: objWidth, 
        top: 0, 
        left: offset, 
        position: 'fixed'}); 
stickyHeader.append(span); 
+0

これは本当にうまく動作します。簡単な解答と丁寧な答えをありがとう。 – Bojangles

+0

@JamWaffles - あなたも大歓迎です:) – karim79

0

新しい要素にスタイルを追加するうまい解決策は、正しいクラス/ IDを持っていることと、よく書かれたCSSスタイルシートがあることを確認することです。

+0

これはどのように役立ちますか? – Phil

+0

@zzzz:コードを少し読めば、他の要素のプロパティを使っていくつかのスタイルが定義されていることがわかります。 – Bojangles

+0

@JamWaffles、あなたのコードを更新する前に私は反応しました。私はあなたがスタイルシートを使用する代わりに 'css'呼び出しを使用していたと仮定していました。 – zzzzBov

3

.append強制的に再描画します。そのため、リソースが消費され、UIが遅くなります。オブジェクトや文字列にHTMLを構築し、一度にDOMに挿入するのが最善です。

CSSを大型持ち上げることをお勧めします。好ましくは外部スタイルシートから行います。インラインスタイルは構文解析する必要があります。

+0

変数に与えられたjQueryオブジェクトにそれを追加するとどうなりますか? – Bojangles

+0

+1「オブジェクトや文字列にHTMLを組み込んで、一度にDOMに挿入するのが最善です」 – karim79

+0

はい、それを変数に代入し、最後に1つずつ追加します。 –

0

エレメントにアタッチしているクラスがCSSファイルですでに定義され、スタイル設定されている場合、エレメントは自動的にそれらのスタイルを使用します。

0

別の解決策、使用のCSSファイル^^、私はあなたの投稿コードには `CSS()`使い方を見ない私のjsfiddle

+0

もう1つの解決策は、なぜこれが機能しないかを見るために私のコードを見てみてください。 – Bojangles

+0

正確...沈んだ応答には申し訳ありません – Awea

関連する問題