たとえば、テーブルをシミュレートするために、多くの要素の幅を変更したいとします。私はあなたがこれを行うことが実現:jQueryを使用してCSSルール定義を変更する
$(".class").css('width', '421px');
これは、各要素のインラインstyle='width: 421px;'
属性を変更します。今、私は何をしたい:実際のCSSルール定義を変更します
.class {
width: 375px; ==[change to]==> 421px;
}
変更する必要が入れ子になった<ul>
と<li>
のない1000の場合、それは100のに来るとき、それはこのように思えることだろうjQueryに.css()
メソッドを使用させようとするよりも、パフォーマンスが向上します。
私はthis exampleを見つけた - これは私がやろうとしているものです:
var style = $('<style>.class { width: 421px; }</style>')
$('html > head').append(style);
私はEVERY最適のクラスを持つことができないので、私は、クラス($el.removeClass().addClass()
)を交換しようとしないんだけど幅(379px、387px、402px ..)。
私は<style>
要素を作成し、幅を動的に設定できましたが、もっと良い方法があると思います。
本当にあなたはあなたのCSSに2つのクラスを書いて、必要なときに適切なクラスを追加/削除するべきだと思います。あなたはJSであなたのスタイルシートを混乱させるべきではありません、それはすぐにunmaintainableになるでしょう。 – kapa
@kapaこれは制限があります。なぜならすべてのCSSを事前に定義しなければならないからです。たとえば、任意のn番目の子要素を強調表示することはできませんでした。 '#root> div:nth-child( '+ Nth +'){背景:赤; } ' –