Я пытаюсь создать объект JSON перед обновлением CSS элемента, но CSS не обновляется для элемента.Элемент обновления CSS от JSON
Мой код:
var style = $.parseJSON("{\"" + attrName + "\":\"" + $(this).val() + "\"}");
elContainer.css(style);
Я пытаюсь создать объект JSON перед обновлением CSS элемента, но CSS не обновляется для элемента.Элемент обновления CSS от JSON
Мой код:
var style = $.parseJSON("{\"" + attrName + "\":\"" + $(this).val() + "\"}");
elContainer.css(style);
Почему вы делаете строку JSON, а затем разбор его, вместо того, чтобы просто сделать объект JS?
Это то, что вы должны делать, если я не недоразумение:
var style = {};
style[attrName] = $(this).val();
eleContainer.css(style);
Или, если вы действительно просто установив один атрибут CSS, вы могли бы сделать, как это было предложено @Nick, как это:
BTW, если это ваш фактический код, вы, вероятно, будете получать ошибки, так как вам не хватает конкатенатора +
.
ОБНОВЛЕНИЕ:
.css()
является установка для набора соответствующих элементов один раз. Он не создает постоянное правило CSS, которое применяется к элементам, которые еще не существуют.
Если вы действительно хотите создать правило CSS вместо применения определенных стилей CSS к набору определенных элементов, то вы могли бы динамически создать <style>
тег:
$("<style> .container { "+ attrName +": '"+ $(this).val() +"'; } </style>")
.appendTo('body');
Смотрите также: Create a CSS rule/class with jQuery at runtime
Вы можете установить один атрибут CSS без необходимости создания объекта и, конечно, без разбора JSON:
eleContainer.css(attrName, $(this).val());
Слишком много закрытых котировок, tha t javascript даст вам несколько синтаксических ошибок. – Tallmaris
@Tallmaris: Ну, это даст синтаксические ошибки, но не из-за слишком большого количества закрытых котировок. Ошибки синтаксиса исходили из отсутствия конкатенаторов строк ('+'), правильно? – Travesty3
Да, вот что я имел в виду ... Я был в спешке, извините :) – Tallmaris