Javascript 字符串中的单引号表示不正确
我在HTML中有一个按钮,在Javascript 字符串中的单引号表示不正确,javascript,html,Javascript,Html,我在HTML中有一个按钮,在onclick事件中,我得到的参数很少。我的论点是这样的: javascript:Email('Andy.n@gmail.com' ,'19','1','2017','106 O'Horg St, Del-5th floor boardroom') 现在问题出在这个值'106 O'Horg St,Del-5th floor boardroom', 因为我的值中有O',所以我的整个字符串被破坏了,我无法使用它。有谁能帮我解决这个问题吗? 这是我的示例代码,我在其中获取
onclick
事件中,我得到的参数很少。我的论点是这样的:
javascript:Email('Andy.n@gmail.com' ,'19','1','2017','106 O'Horg St, Del-5th floor boardroom')
现在问题出在这个值'106 O'Horg St,Del-5th floor boardroom',
因为我的值中有O'
,所以我的整个字符串被破坏了,我无法使用它。有谁能帮我解决这个问题吗?
这是我的示例代码,我在其中获取数据并进行评估
onclick=“javascript:Email(\'+FacilityOwnerMail++'、\'+i++'、\''+monthNumber++'、\'+Dreamnum++'、\''+locArray[j][0]+')”
我不能用任何其他字符替换,,因为它将与后端中的数据不匹配。有几个选项:
请改用双引号:
"106 O'Horg St, Del-5th floor boardroom"
改用反勾号(ES6+):
使用\
转义有问题的单引号:
'106 O\'Horg St, Del-5th floor boardroom'
您需要在该字符串中转义引号,这可能会变得相当复杂,并导致难以阅读的代码。与此相反,我建议使用完全不同的模式来创建这些可单击的元素:
- 使用domapi来创建元素,而不是生成HTML李>
- 不要使用
属性,而是通过代码添加单击侦听器(使用onclick
).addEventListener()
//虚拟电子邮件实现:您当然可以使用自己的:
功能电子邮件(a、b、c、d、e){
log('使用以下参数调用电子邮件:');
log([a,b,c,d,e].join(',');
}
//样本数据:
var facilityOwnerEmail='Andy。n@gmail.com',
i=19,
monthNumber=1,
2017年,
j=0,
locArray=[“106 O'Horg St,Del-5楼董事会会议室”];
// 1. 通过DOM API生成可单击元素,不带onclick属性:
var div=document.createElement('div');
div.textContent='单击此处';
// 2. 动态提供click处理程序,将参数绑定到电子邮件函数的副本
//--现在引号不再有问题了:
div.addEventListener('click',Email.bind(null,FacilityOwnerMail,i,monthNumber,Dearneum,locArray[j][0]);
// 3. 将该元素添加到文档中所需的位置(我选择body作为示例):
文件.正文.附件(div);
//要生成任何其他此类元素,请重复上述三个步骤
//…
您必须提供有关如何获取此字符串的更多信息(code),因为您使用的符号本身已经是一个语法错误。@user12345,您可以发布您的代码吗?@trincot我在需要O'
的地方获得了此电子邮件数据。我想知道如何处理这种情况,因为如果价值中没有一个单引号,那么一切都会很好地运行。如果您尝试过用斜杠将其转义'106 O'Horg St,Del-5th floor boardroom'
@user12345,您应该提供有关如何将电子邮件中的数据转换为您所谈论的参数的代码。有数百种方法可以实现这一点,除非您提供代码,否则我们无法知道是哪种方法。
'106 O\'Horg St, Del-5th floor boardroom'