SyntaxError:在Firebug中,标识符在数字文本之后立即开始

SyntaxError: identifier starts immediately after numeric literal in Firebug

本文关键字:之后 文本 开始 数字 标识符 Firebug SyntaxError      更新时间:2023-09-26

当我调用以下javascript函数时,会出现错误:

function kickUser(id_userChat){
$.post("chatFuncs.php", { action: "kick", id_user: id_userChat });  
}

这个"kickUser"功能是为每个连接到我的聊天框的用户生成的,就像这个

$listUsers .= '<img src="imgUsers/'.$DBClass->nomImg($rowUsers['id_user'],$posImg).'" height="'.$heightImg.'" width="'.$widhImg.'"/>
<span class="styleMsg">'.$rowUser['nameUser'].'</span>&nbsp;
<a href="#" class="BtnKick" onClick="kickUser('.$rowUsers['id_user'].')">Kick</a></br>';

"kick"操作只是对我的数据库的更新,在那里我从聊天用户表中删除了该用户

如果我将$rowUsers['id_user']更改为$rowUsers['userName'],则错误将更改为:ReferenceError:未定义"userName"(我只是为了这个例子而将用户的真实姓名更改为"userName")。

JavaScript中的标识符不能以数字开头;它们必须以字母$_开头。


我猜它来自这个:

onclick="kick_user('.$rowUsers['id_user'].')">Kick</a>

如果你想传递一个字符串,那么你需要引用传递的值。

onclick="kick_user('"'.$rowUsers['id_user'].''")">Kick</a>

我不懂PHP,所以也许你需要不同的转义,但这应该会给你一些想法。

生成的JavaScript代码将是

kickUser(userName)

…并且显然不存在js变量userName。你想传递一个字符串:

kickUser('userName');

因此,在输出中添加引号/撇号,不要忘记正确转义$rowUsers['userName']$rowUsers['id_user']也是如此,它似乎输出了一个无效的标识符。