Jquery 从JSON更新元素CSS
我试图在更新元素的CSS之前创建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 = {};
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:嗯,它会给语法错误,但不是因为太多的闭引号。语法错误可能是因为缺少字符串连接符(+
),对吗?是的,这就是我的意思。。。我有点匆忙,抱歉:)它不适用于动态添加的元素,但适用于静态元素。它不适用于动态添加的元素,但适用于静态元素