Bil*_*lla 16 javascript jquery
如何将参数传递给'
包含的javascript函数
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));
Run Code Online (Sandbox Code Playgroud)
由于名称'Lauren O'Donald'
包含单引号,因此javascript函数未执行.
如何添加参数'
并准备动态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
));
});
Run Code Online (Sandbox Code Playgroud)
h2o*_*ooo 32
您可以通过前缀\
来转义引号/字符:
var string = 'my string with "double quotes" and \'single quotes\'';
var string = "my string with 'single quotes' and \"double quotes\"";
// ^ ^
Run Code Online (Sandbox Code Playgroud)
使用动态字符串:
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\'
Run Code Online (Sandbox Code Playgroud)
你可以使用\
:
var htmlAnch='<a onclick="javascript:selectEmployee(1100,\'Lauren O\'Donald\');return false;"
href="javascript:void(0);">O\'Donald, Lauren</a>';
Run Code Online (Sandbox Code Playgroud)
但是,当您使用jQuery标记此问题时,更好的解决方案是将事件连接到元素并使用data-*
属性来存储相关信息,这将避免使用丑陋的onX
属性.试试这个:
var $htmlAnch = $('<a />' {
text: "O'Donald, Lauren" ,
data-id: 1100,
data-name: "Lauren O'Donald"
}).click(function(e) {
e.preventDefault();
selectEmployee($(this).data('id'), $(this).data('name'));
});
$(document).append($htmlAnch);
Run Code Online (Sandbox Code Playgroud)