Jquery html()函数用于对option元素的value参数中的空格进行编码

时间:2015-12-30 20:51:41

标签: jquery json

我正在使用JQuery的html()函数在一组选项下拉列表中动态编码JSON值。我的大多数网站都按预期完美运行:

$('#parameters').html('<option value={"name":"testsalary"}></option>');

<div id=​"parameters">​<option value=​"{"name":​"testsalary"}>​</option>​</div>​

但是如果JSON对象有空格,则通过添加原先不存在的双引号来中断:

$('#parameters').html('<option value={"name":"test salary"}></option>');

<div id=​"parameters">​<option value=​"{"name":​"test" salary"}>​</option>​</div>​ 

有没有人知道解决这个问题?

2 个答案:

答案 0 :(得分:1)

您需要在价值附近添加引号

$('#parameters').html('<option value=\'{"name":"test salary"}\'></option>');

这会让你

<div id=​"parameters">​<option value=​'{"name":​"test salary"}'>​</option>​</div>​ 

答案 1 :(得分:0)

作为一种解决方法,我决定将空格编码为&amp; nbsp,并在接收后将其转换为后端。

因此...

$('#parameters').html('<option value={"name":"test salary"}></option>');

变为

$('#parameters').html('<option value={"name":"test&nbspsalary"}></option>');

不幸的是它没有对value参数中的空格进行编码。