Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符串中的单引号表示不正确_Javascript_Html - Fatal编程技术网

Javascript 字符串中的单引号表示不正确

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',所以我的整个字符串被破坏了,我无法使用它。有谁能帮我解决这个问题吗? 这是我的示例代码,我在其中获取

我在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(\'+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'