【问题标题】:SyntaxError: identifier starts immediately after numeric literal in FirebugSyntaxError:标识符在 Firebug 中的数字文字之后立即开始
【发布时间】:2013-02-19 19:51:18
【问题描述】:

我在调用这个 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”操作只是对我的数据库的更新,我在其中从我的 chatUsers 表中删除了用户

如果我将 $rowUsers['id_user'] 更改为 $rowUsers['userName'],错误将变为: ReferenceError: 'userName' is not defined(为了这个例子,我将用户的真实姓名更改为 'userName')。

【问题讨论】:

  • 为什么这个标签是java?你是说javascript吗?
  • 是的,我的意思是 javascript。这是我第一次问
  • 没问题的伙伴。欢迎登机。

标签: javascript firebug


【解决方案1】:

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


我猜它来自这个:

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

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

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

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

【讨论】:

  • 这是解决方案:onclick="kickUser(\''.$id_user.'\')">Kick';你的问题是逃跑,你知道我在哪里可以了解更多关于逃跑的信息吗? ...感谢您的帮助。
  • @user2088447:我不懂 PHP,但是如果你在 JavaScript 中构建字符串,你可以构建一个带有嵌套引号的字符串,如果它们是不同类型的 "foo 'bar' baz",或者如果您逃避它们,则为同一类型,"foo \"bar\" baz"。如果 \ 在 PHP 中具有特殊含义,那么您可能需要 \\
  • 不错的答案。奇怪的是引号起作用但String 功能不起作用!
【解决方案2】:

生成的 JavaScript 代码将是

kickUser(userName)

...显然没有 js 变量userName。你想传递一个字符串:

kickUser('userName');

所以在输出中添加引号/撇号,不要忘记正确转义$rowUsers['userName']$rowUsers['id_user'] 完全一样,它似乎输出了一个无效的标识符。

【讨论】:

  • 你尝试了什么?它输出了什么?这次的错误信息是什么?
  • 我尝试像这样在函数中添加引号:kickUser('userName') 但一切都停止了,所以我撤消了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
相关资源
最近更新 更多