2012-08-14 37 views
1

我有一個選擇菜單,我動態地從數據庫中插入一些值:逃生HTML「value」屬性的選擇菜單

markup += '<option value=' + option["value"] + '>' + option["alias"] + '</option>'; 

一些價值,但是,包含雙引號。要避免這個讓我想:

markup += '<option value=' + JSON.stringify(option["value"]) + '>' + option["alias"] + '</option>'; 

有關示例起見,假設該值爲6" 火箭(這其實是我的問題孩子) 當我嘗試並使用讀出的值Jquery的.val()我總是得到6.

怎麼做呢?

+0

如果您正在使用字符串執行此操作,則應該JS轉義您在JS中使用的值。 – 2012-08-14 14:34:21

+0

這不僅僅是在這裏的JS轉義。我看不到你的選項[「value」]是如何構造的......但是在你把它放在引號裏面之前,你已經逃避了這個值''「;' – Ohgodwhy 2012-08-14 14:35:57

+0

@Ohgodwhy如果我沒有逃過它,那麼 JonWells 2012-08-14 14:41:44

回答

3

避免這種問題的最簡單方法是DOM-sript而不是HTML的插入字符串。

var sel = $('#some_dropdown'); 
... 
$('<option />', {value: option.value, text: option.alias}).appendTo(sel); 
+0

This Works!與Dom腳本我可以添加任何屬性? – JonWells 2012-08-14 14:44:27

+0

當然 - 您可以將自己製作成HTML字符串的任何東西都可以通過DOM腳本完成。在我的代碼中,我使用jQuery快捷方式來設置屬性 - 將一個對象作爲參數2傳遞給'$'函數。還有'.attr()'方法。 – Utkanos 2012-08-14 14:56:13