Jquery 从JSON更新元素CSS

Jquery 从JSON更新元素CSS,jquery,css,Jquery,Css,我试图在更新元素的CSS之前创建JSON对象,但是没有更新元素的CSS 我的代码: var style = $.parseJSON("{\"" + attrName + "\":\"" + $(this).val() + "\"}"); elContainer.css(style); 为什么要生成一个JSON字符串,然后对其进行解析,而不仅仅是生成一个JS对象 这是你应该做的,除非我误解了: var style = {};

我试图在更新元素的CSS之前创建JSON对象,但是没有更新元素的CSS

我的代码:

var style = $.parseJSON("{\""  + attrName +  "\":\""  + $(this).val() +  "\"}");                                
elContainer.css(style);

为什么要生成一个JSON字符串,然后对其进行解析,而不仅仅是生成一个JS对象

这是你应该做的,除非我误解了:

var style = {};
style[attrName] = $(this).val();
eleContainer.css(style);
或者,如果您真的只是设置一个CSS属性,您可以按照@Nick的建议执行,如下所示:

eleContainer.css(attrName, $(this).val());
顺便说一句,如果这是您的实际代码,您可能会收到错误,因为您缺少
+
连接符


更新:

.css()
是匹配元素集的一次性设置。它不会创建一个永久的CSS规则来应用于尚不存在的元素

如果您希望实际创建CSS规则,而不是将某些CSS样式应用于一组特定元素,则可以动态创建
标记:

$("<style> .container { "+ attrName +": '"+ $(this).val() +"'; } </style>")
    .appendTo('body');
$(“.container{“+attrName+”:“++$(this.val()+”;}”)
.附于(“主体”);

另请参见:

为什么要生成JSON字符串并对其进行解析,而不仅仅是生成JS对象

这是你应该做的,除非我误解了:

var style = {};
style[attrName] = $(this).val();
eleContainer.css(style);
或者,如果您真的只是设置一个CSS属性,您可以按照@Nick的建议执行,如下所示:

eleContainer.css(attrName, $(this).val());
顺便说一句,如果这是您的实际代码,您可能会收到错误,因为您缺少
+
连接符


更新:

.css()
是匹配元素集的一次性设置。它不会创建一个永久的CSS规则来应用于尚不存在的元素

如果您希望实际创建CSS规则,而不是将某些CSS样式应用于一组特定元素,则可以动态创建
标记:

$("<style> .container { "+ attrName +": '"+ $(this).val() +"'; } </style>")
    .appendTo('body');
$(“.container{“+attrName+”:“++$(this.val()+”;}”)
.附于(“主体”);

另请参见:

您可以设置单个CSS属性,而无需创建对象,当然也无需解析JSON:

eleContainer.css(attrName, $(this).val());

您可以设置单个CSS属性,而无需创建对象,当然也无需解析JSON:

eleContainer.css(attrName, $(this).val());

有太多的闭引号,javascript行会给你一些语法错误。@Tallmaris:嗯,它会给语法错误,但不是因为太多的闭引号。语法错误可能是因为缺少字符串连接符(
+
),对吗?是的,这就是我的意思。。。我有点着急,对不起:)有太多的闭引号,javascript行会给你一些语法错误。@Tallmaris:嗯,它会给语法错误,但不是因为太多的闭引号。语法错误可能是因为缺少字符串连接符(
+
),对吗?是的,这就是我的意思。。。我有点匆忙,抱歉:)它不适用于动态添加的元素,但适用于静态元素。它不适用于动态添加的元素,但适用于静态元素