Jquery动态创建元素| onclick传递字符串参数

Pri*_*rua 2 javascript jquery

我正在动态创建HTML,但我收到语法错误.如果我改为href="javascript:startChat(' + user_id + ','video')",href="javascript:startChat(' + user_id + ','"video"')"我会收到错误,说'视频未定义'.

html +='<li><a href="javascript:startChat('+user_id+','video')"><i class="uk-icon-video-camera uk-icon-large"></i></a></li>';

function startChat(user_id, type){
    console.log(type);
}
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 5

正如您在问题中突出显示的语法所示,您没有正确地转义字符串中的引号.试试这个:

html += '<li><a href="javascript:startChat(' + user_id + ', \'video\')"><i class="uk-icon-video-camera uk-icon-large"></i></a></li>';

function startChat(user_id, type){
    console.log(type);
}
Run Code Online (Sandbox Code Playgroud)

另请注意,使用委托事件处理程序来实现此操作而不是过时的内联事件属性会更好.试试这个:

html += '<li><a href="#" data-userid="' + user_id + '"><i class="uk-icon-video-camera uk-icon-large"></i></a></li>';

$('ul').on('click', 'li', function(e) {
    startChat($(this).data('userid'), 'video');
});
Run Code Online (Sandbox Code Playgroud)