当我在一个单词和一个单词之间留出空格时我点击调用一个函数,然后我收到以下错误:
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代码?
答案 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字符串。因此,每当我们想要字符串中的单引号时,我们希望它用于函数,我们必须使用反斜杠将其转义为/'
,这将显示单引号。否则字符串将在此时停止。