Javascript jQuery字符串连接“+”错误

Javascript jQuery字符串连接“+”错误,javascript,jquery,string-concatenation,string-interpolation,Javascript,Jquery,String Concatenation,String Interpolation,我有一个jQuery语句 $('.searchDisplay').append('<i class="ion-email" onclick="copyEmail('+data[i].email+')"></i>' ); 我犯了这个错误 未捕获的语法错误:意外标记} 问题是我无法在函数中传递字符串 有人能帮我解决这个问题吗?试试这个 $('.searchDisplay').append('<i class=\"ion-email\" onclick=\"copyE

我有一个jQuery语句

 $('.searchDisplay').append('<i class="ion-email" onclick="copyEmail('+data[i].email+')"></i>' );
我犯了这个错误

未捕获的语法错误:意外标记}

问题是我无法在函数中传递字符串

有人能帮我解决这个问题吗?

试试这个

$('.searchDisplay').append('<i class=\"ion-email\" onclick=\"copyEmail(\"'+data[i].email+'\")\"></i>' );
试试这个

$('.searchDisplay').append('<i class=\"ion-email\" onclick=\"copyEmail(\"'+data[i].email+'\")\"></i>' );
代码中的问题是

当您以字符串作为参数调用函数时,您可以执行someFunction'somestring';,在代码中,缺少对字符串的包装

因此,您需要将数据[i]包装到带有“..”的电子邮件中。我已经用包装了数据[I]。电子邮件,但因为已经有一对了,所以我不得不用\来逃避它

代码中的问题是

当您以字符串作为参数调用函数时,您可以执行someFunction'somestring';,在代码中,缺少对字符串的包装


因此,您需要将数据[i]包装到带有“..”的电子邮件中。我已经用包装了数据[I]。电子邮件,但因为已经有一对了,所以我不得不用\来逃避它

您应该使用\来避免错误,因此您可以:

$('.searchDisplay').append('<i class="ion-email"  onclick="copyEmail(\''+data[i].email+'\')"></i>' )

已编辑

您应该使用\来避免错误,因此您可以:

$('.searchDisplay').append('<i class="ion-email"  onclick="copyEmail(\''+data[i].email+'\')"></i>' )

编辑后的

您最好给它一个id或另一个标识属性,然后在附加onClick处理程序后添加它,当它在DOM中可用时,可以按照以下行操作:

$('.searchDisplay').append('<i id="num' + i + '" class...></i>');
$('#num' + i).on('click', 
                 function () {
                     ...
                 });
或者通过选择.searchDisplay类一次钩住所有这些对象。
您可以在函数中使用$this来确定单击了哪一个。

您最好给它一个id或另一个标识属性,然后在附加onClick处理程序后添加onClick处理程序(当它在DOM中可用时),如下所示:

$('.searchDisplay').append('<i id="num' + i + '" class...></i>');
$('#num' + i).on('click', 
                 function () {
                     ...
                 });
或者通过选择.searchDisplay类一次钩住所有这些对象。 您可以在函数中使用$this来确定单击了哪一个。

您不需要包装数据[i]。在函数参数中根本不使用“++”的电子邮件:

$('.searchDisplay').append('<i class="ion-email" onclick="copyEmail(data[i].email)"></i>' );
var data=[{'email':'123@gmail.com'},{'email':'xyz@gmail.com'}]; var i=1; $'.searchDisplay'.append'Click To Test'; 功能CopyEmail{ console.logemail; } 您不需要包装数据[i]。在函数参数中根本不使用“++”的电子邮件:

$('.searchDisplay').append('<i class="ion-email" onclick="copyEmail(data[i].email)"></i>' );
var data=[{'email':'123@gmail.com'},{'email':'xyz@gmail.com'}]; var i=1; $'.searchDisplay'.append'Click To Test'; 功能CopyEmail{ console.logemail; }
我认为您的问题不在发布的代码中,请编辑问题并发布函数“copyEmail”,并从出现语法错误的控制台检查报告的行号。我认为您的问题不在发布的代码中,请编辑问题并发布函数“copyEmail”,并从出现SyntaxError的控制台检查报告的行号。你能解释一下问题出在哪里吗?@SandeepRanjan请将最有用的答案标记为正确!你能给我解释一下问题出在哪里吗?@SandeepRanjan domark最有用的答案是正确的!虽然此代码可以回答问题,但提供关于如何以及为什么解决问题的附加上下文将提高答案的长期价值。虽然此代码可以回答问题,但提供关于如何以及为什么解决问题的附加上下文将提高答案的长期价值。