由于系统的设置方式,我需要将其作为onclick:
var name = "o'hanrahan";
var htmlData = '<ul class="">';
htmlData += '<li onclick="alert('hello ' + name)">Enter</li>';
htmlData += '</ul>';
return htmlData;
我简化了这个例子。姓名将会改变,可能是任何事情。
如何在引号内引用js?
答案 0 :(得分:2)
你必须逃脱它们:
var name = "o\\'hanrahan";
var htmlData = '<ul class="">';
htmlData += '<li onclick="alert(\'hello ' + name + '\')">Enter</li>';
htmlData += '</ul>';
return htmlData;
当你插入一个带有相同引号的字符串时,必须将其转义两次
更好的方法是
var name = "o'hanrahan";
var ul = document.createElement('ul');
var li = document.createElement('li');
li.addEventListener('click', function() {
alert(name);
}, false);
li.innerHTML = 'Enter'
ul.appendChild(li)
return ul;
这样名字无关紧要
答案 1 :(得分:2)
你需要使用\来转义'',并且名称的渲染字符串必须在单引号内。
htmlData += '<li onclick="alert('hello ' + name)">Enter</li>';
需要
htmlData += '<li onclick="alert(\'hello ' + name.replace(/'/g,"\\'") + '\')">Enter</li>';
现在,如果名称中包含"
,则会出现更多问题。
如果名称中包含"
,则需要将"
替换为"