字符串插值对于具有多个单词的字符串不起作用

时间:2015-10-15 15:07:32

标签: javascript jquery

代码会从选择框中删除所有选项并更新它们。问题是每个选项的值未正确更新。

正在发生的事情是每个选项的值仅使用字符串的第一个单词更新,这是不正确的。我想用整个字符串更新值。

代码:

service_selection.children().remove();
$.each(data, function(index,value){
    service_selection.append("<option value=" + value.description + ">" + value.description + "</option>");
});

示例:假设value.description =“Hello World Foo Bar”。

html显示它只将“Hello”分配给选项的值,而不是“Hello World Foo Bar”分配给选项的值。

更新后的当前html如下所示:

<option value="Hello" World Foo Bar>Hello World Foo Bar</option>

2 个答案:

答案 0 :(得分:4)

你忘了添加&#34;对于实际的html值(它必须被&#34;包围),因此它将在第一个空白区域后切割。

正确的代码如下所示:

    service_selection.children().remove();
$.each(data, function(index,value){
    service_selection.append("<option value='" + value.description + "'>" + value.description + "</option>");
});

(注意单个&#39;我在值之后添加=和之前的&gt;)

答案 1 :(得分:1)

您当前的代码中存在引号问题。

我个人会这样做:

var opts = "";
$.each(data, function(index, value) {
    opts += '<option value="' + value.description + '">' + value.description + '</option>';
});
service_selection.html(opts);