要素の CSS を更新する前に JSON オブジェクトを作成しようとしていますが、要素の CSS が更新されません。
私のコード:
var style = $.parseJSON("{\"" + attrName + "\":\"" + $(this).val() + "\"}");
elContainer.css(style);
JS オブジェクトを作成するだけでなく、JSON 文字列を作成してから解析するのはなぜですか?
私が誤解していない限り、これはあなたがすべきことです:
var style = {};
style[attrName] = $(this).val();
eleContainer.css(style);
または、本当に 1 つの CSS 属性を設定するだけの場合は、次のように @Nick が提案したようにすることができます。
eleContainer.css(attrName, $(this).val());
ところで、それが実際のコードである場合、連結子がないため、おそらくエラーが発生するでしょう+
。
アップデート:
.css()
一致する要素のセットに対する 1 回限りの設定です。まだ存在しない要素に適用される永続的な CSS ルールは作成されません。
特定の CSS スタイルを特定の要素のセットに適用する代わりに、実際に CSS ルールを作成したい場合は、<style>
タグを動的に作成できます。
$("<style> .container { "+ attrName +": '"+ $(this).val() +"'; } </style>")
.appendTo('body');
オブジェクトを作成しなくても、JSON を解析しなくても、単一の CSS 属性を設定できます。
eleContainer.css(attrName, $(this).val());