2011-12-06 69 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>';