jquery:SyntaxError:unterminated string literal

时间:2014-04-29 06:44:04

标签: javascript php jquery

当我在一个单词和一个单词之间留出空格时我点击调用一个函数,然后我收到以下错误:

SyntaxError: unterminated string literal
[Break On This Error]   

$(this).SelectProjectBox(363,"ssss

mypage# (line 1, col 29)

浏览器生成了html:

<span ssasas")="" onclick="$(this).SelectProjectBox(363,"ssss" href="#">ssss ssasas</span>

我的实际代码

  echo '<span href="#"  onClick=$(this).SelectProjectBox(' . $cat->project_id . ',"'.$cat->project_name.'")>' . $cat->project_name . '</span>';

原因是什么请建议,我该如何修改我的PHP代码?

4 个答案:

答案 0 :(得分:3)

你在onclick事件上缺少引号试试

echo '<span href="#"  onClick="$(this).SelectProjectBox(' . $cat->project_id . ','.$cat->project_name.')">' . $cat->project_name . '</span>';

或尝试

<span href="#"  onClick="$(this).SelectProjectBox(<?php echo $cat->project_id ;?>,<?php echo $cat->project_name;?>)"><?php echo $cat->project_name;?></span>

答案 1 :(得分:1)

如果我可以给你一些建议:将代码分开一点。人们更容易理解:

$content  = "<span href='#' ";  
$content .= "onClick=\"$(this).SelectProjectBox($cat->project_id,'$cat->project_name')\"";
$content .= ">";
$content .= $cat->project_name . "</span>";

echo $content;

答案 2 :(得分:1)

使用'转义单引号(\)。

\'将回复'

  

要指定文字单引号,请使用反斜杠(\)对其进行转义。要指定文字反斜杠,请将其加倍(\\)。反斜杠的所有其他实例将被视为文字反斜杠:这意味着您可能习惯使用的其他转义序列(例如\r\n)将按字母顺序输出,而不是任何特殊意义。

代码

echo '<span href="#"  onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>';

阅读String

答案 3 :(得分:0)

而不是

echo '<span href="#"  onClick=$(this).SelectProjectBox(' . $cat->project_id . ',"'.$cat->project_name.'")>' . $cat->project_name . '</span>';

尝试

echo '<span href="#"  onClick="$(this).SelectProjectBox(\''.$cat->project_id .'\',\''.$cat->project_name.'\')">'.$cat->project_name.'</span>';

在这里,我们回应了html部分,我们使用单引号括起整个html字符串。因此,每当我们想要字符串中的单引号时,我们希望它用于函数,我们必须使用反斜杠将其转义为/',这将显示单引号。否则字符串将在此时停止。