私のスクリプトでは、ページのセクションにスタイルシートを動的に作成する必要があります (後でメディア クエリでこれらのスタイルをオーバーライドする必要があるため、各要素にインライン スタイルを配置するのではなく)。
コード
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には、簡潔にするために投稿していない別の関数があります。