2015-10-15 49 views
-1

該代碼從選擇框中刪除所有選項並更新它們。問題是每個選項的值沒有正確更新。字符串插值不按預期方式工作,但字符串不止一個字

發生了什麼是每個選項的值更新只是一個字符串,這是不正確的第一個字。我希望用整個字符串更新值。

代碼:

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

例子:比方說,value.description =的 「Hello World富吧」。

html顯示它只將選項的值「Hello」指定爲選項的值,而不是「Hello World Foo Bar」。

更新後當前的HTML看起來像這樣:

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

如果不加引號,屬性值在第一空間突破。基本的HTML。 – epascarello

回答

4

你忘了添加「爲實際的HTML值(它被包圍」),therfor將出現第一個空格後切。

正確的代碼應該是這樣的:

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

(注意單曲「I值後添加=和前>)

1

你必須在你的當前代碼報價的問題。

我個人做這樣的事情:

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

很好的捕獲。謝謝。我遇到了一個問題,其中一個描述有一個撇號。您對更改報價的評論修復了它。 – Neil

相關問題