私のスクリプトでは、ページのセクションにスタイルシートを動的に作成する必要があります (後でメディア クエリでこれらのスタイルをオーバーライドする必要があるため、各要素にインライン スタイルを配置するのではなく)。
コード
for (var i=0; i<theElements.length; i++){
$(theElements[i]).not('.responsive-wrap').each(function(i, elem){
var theWidth = $(this).width();
var parentWidth = $(this).parent().width();
$(this).addClass('element' + [i]);
$("#dynamicStylesheet").text('.element' + [i] + ' {max-width: ' + theWidth + 'px;}');
});
}
主な質問は次のとおりです。
#dynamicStylesheet
これにより、ループの実行ごとにテキストが完全に上書きされます(したがって、ページをロードすると、 のルールは 1 つだけになります.element22
)。上書きせずにテキストを追加するにはどうすればよいですか?
ボーナスポイントのサブ質問:
これはほとんどの場合機能し
[i]
ますが、角括弧で囲まれている場合のみです。どうしてこれなの?for loop
ここが必要ですか、それとも.each(function(){})
本質的にfor loop
とにかく作成していますか?each
この関数の下for loop
には、簡潔にするために投稿していない別の関数があります。