我有一个代码
socket.on('user joined',function(data){
var ume = data.username;
$('#userlist').append("<li id='"+ume+"'><a href='#' onclick='prePrivate("+ume+"); return false;'>"+ume+"</a></li>");
console.log(ume);
});
和prePrivate方法
function prePrivate(userprivate){
privateuser = userprivate;
console.log(privateuser);
}
当我点击li
元素时,控制台打印
<li id="sample_data">
但不打印sample_data。 我不明白,如何变量。对不起我的英语不好
答案 0 :(得分:2)
您需要在正在构建的字符串的prePrivate调用中在ume周围添加引号:...onclick='prePrivate(\""+ume+"\");...
如果没有它们,您正在调用prePrivate(sample_data)
,而sample_data
恰好是您使用相同名称而不是字符串的DOM li
元素。为什么?见Do DOM tree elements with ids become global variables?