2011-12-06 65 views
1

我想結合這些變量並將它們追加到選擇標記,但變量包含特殊字符,一切都變得混亂起來。不管我怎麼試圖逃避特殊角色,我都無法使它工作。任何人都可以看看,並告訴我我做錯了什麼?jQuery需要幫助轉義變量

var contractid = $(this).attr("ows_ID"); 
var hrefa = "javascript\:SelectField\(\'\{808AEFE9-F68B-4F7B-AF62-C5B32723BBC1\}\'\,\'"; 
var hrefb = "'\)\;return\ false\;"; 

var optionline = "<option value='"+hrefa+""+contractid+""+hrefb+"'>otherstuff</option>"; 

最終產品應該是這個樣子:

javascript:SelectField('{808AEFE9-F68B-4F7B-AF62-C5B32723BBC1}','133');return false; 

,但它永遠是這樣的:

false;'="" {808aefe9-f68b-4f7b-af62-c5b32723bbc1}','115');return="" value="javascript:SelectField(" 
+0

這看起來不是一個好主意。通過在選項的value屬性中存儲javascript URL,你想實現什麼功能? –

+0

你可能是正確的......我有'<選擇的onchange =「window.open(THIS.VALUE,‘_自我’,‘’);」>'一個選項被選擇時,將執行JavaScript操作。不過,我認爲它最終不會奏效。 – kramden88

+2

您應該能夠通過使用例如附加更改處理程序來使代碼顯着更易於維護和閱讀。 http://api.jquery.com/change/而不是在HTML中使用內聯事件。 –

回答

1

你正在做的複雜得多,它需要的。只需在輸出中反轉引號即可。

var contractid = $(this).attr("ows_ID"), 
    hrefa = "javascript:SelectField('{808AEFE9-F68B-4F7B-AF62-C5B32723BBC1}','", 
    hrefb = "');return false;", 
    optionline = '<option value="' + hrefa + contractid + hrefb + '">otherstuff</option>';