我有一个jQuery语句
$('.searchDisplay').append('<i class="ion-email" onclick="copyEmail('+data[i].email+')"></i>' );
如果我点击此图标,则会调用此函数copyEmail()
,该函数将字符串作为参数并将其添加到剪贴板。
但是当我点击图标时,我的控制台出现错误
未捕获的SyntaxError:无效或意外的令牌
然后我尝试这样做
$('.searchDisplay').append('<i class="ion-email" onclick="copyEmail("'+data[i].email+'")"></i>' );
我收到了这个错误
未捕获的SyntaxError:意外的令牌}
问题是我无法在函数中传递字符串。
有人可以为我解决这个问题吗?
答案 0 :(得分:1)
试试这个
Blue
答案 1 :(得分:1)
$('.searchDisplay').append('<i class="ion-email" onclick="copyEmail(\''+data[i].email+'\')"></i>' );
代码中的问题是......
当您使用字符串作为参数调用函数时,执行someFunction('somestring');
,在代码中缺少包裹字符串的''
。
所以你需要用data[i].email
包裹' .. '
。我已将data[i].email
与''
包裹在一起,但由于已有一对,所以我必须使用\
将其转义。
答案 2 :(得分:1)
你应该使用&#34; \&#34;为了避免错误,你可以这样做:
public void addFragment(Fragment fragment) {
mFragmentList.add(fragment);
}
被修改
答案 3 :(得分:0)
$('.searchDisplay').append(`<i class="ion-email" onclick="copyEmail('${data[i].email}')"></i>`);
答案 4 :(得分:0)
你最好给它一个id或另一个标识属性,然后在追加它之后添加onClick处理程序,当它在DOM中可用时,按照以下方式添加:
$('.searchDisplay').append('<i id="num' + i + '" class...></i>');
$('#num' + i).on('click',
function () {
...
});
或者通过选择.searchDisplay
类一次性挂钩所有这些。
您可以在函数中使用$(this)
来确定单击了哪一个。