如何将参数传递给包含'
var name ="Lauren O'Donald";
var htmlAnch='<a onclick="javascript:selectEmployee(1100,"'+name+'");return false;"
href="javascript:void(0);">O'Donald, Lauren</a>';
$(document).append($(htmlAnch));
javascript函数未执行,因为名称'Lauren O'Donald'
包含单引号。
如何使用'
添加参数并准备动态html以使其正常工作?
以下是生成
的动态代码 var rows = new StringBuffer();
$(data).each(function(index) {
rows.append(String.format('<tr><td><a href="No.aspx"
onclick="javascript:selectEmployee({3},\"{1} {2}\");return
false;">{0}</a></td></tr>',
String.format("{0}, {1}", this.Surname, this.FirstName),
this.Surname,
this.FirstName,
this.Id
));
});
答案 0 :(得分:30)
您可以通过将\
添加到其中来转义引号/字符:
var string = 'my string with "double quotes" and \'single quotes\'';
var string = "my string with 'single quotes' and \"double quotes\"";
// ^ ^
使用动态字符串:
var foo = "bar with 'quotes'";
var string = 'my string with "double quotes" and ' + foo.replace(/'/g, "\\'");
//my string with "double quotes" and bar with \'quotes\'
答案 1 :(得分:5)
您可以使用\
转义它:
var htmlAnch='<a onclick="javascript:selectEmployee(1100,\'Lauren O\'Donald\');return false;"
href="javascript:void(0);">O\'Donald, Lauren</a>';
然而,当您使用jQuery标记此问题时,更好的解决方案是将事件连接到元素并使用data-*
属性来存储相关信息,这将避免使用丑陋的{{1属性。试试这个:
onX
答案 2 :(得分:1)
编写自己的函数以返回转义字符串。 Demo
将您的字符串作为参数传递给此函数,您将获得转义字符串。如果要转义更多字符,还可以向阻止列表中添加更多字符
function remove_quotes(values1)
{
var values = values1.toString();
var str = "";
var blockList = ['"','\'','\\']; // This is the list of key words to be escaped
var flag = 0;
for(var i = 0;i<values.length;i++)
{
for(var j=0;j<blockList.length;j++)
{
if(values[i] == blockList[j])
{
flag = 1;
break;
}
}
if(flag == 0)
str += values[i];
else
{
str += '\\';
str += values[i];
flag = 0;
}
}
return str;
}
答案 3 :(得分:0)
尝试这样的事情
var htmlAnch='<a onclick="javascript:selectEmployee(1100,\'Lauren O\'Donald\');return false;" href="javascript:void(0);">O\'Donald, Lauren</a>';
答案 4 :(得分:0)
在.aspx文件中,您可以执行以下操作:
<a data-open="editTemplateOverrideModal" onClick="populateUp
dateModal('<%#Server.HtmlEncode(Convert.ToString(DataBinder.Eval(Container.DataItem, "Description")).**Replace("'", "\'")) %>')**">