不确定该标题是否有意义,但我会尝试解释它。
我正在使用PHP生成一些内容。
我正在准备生成的是一个字符串,如果用户启用了JavaScript,则会在onlick事件中使用某些JavaScript吐出URL,如果未启用JavaScript,则会生成常规链接。
$url = "<script type=\"text/javascript\">
document.write(\"<a href='#' onclick='$('#UserID').val(" .
mysql_result($recordset, $count, "userid") . "); return false;'>
Click here
</a>\");
</script>
<noscript>
<a href=\"/scripts/updateuser.php?id=" .
mysql_result($recordset, $count, "userid") . "\">Click here</a>
</noscript>";
我遇到的问题是#UserID的jQuery选择器。由于它是单引号,因此在单击时会弹出它并处理哈希标记并转到页面顶部而忽略返回false。
我不能在那里加双引号,因为那是在我的document.write语句的开头和结尾。
关于如何使用转义字符或其他方法在jQuery选择器周围构造字符串的任何想法?
答案 0 :(得分:2)
您可以使用$(\\'#UserID\\')
。双反斜杠是为了让PHP添加一个额外的反斜杠,使它们可以在onclick属性中使用。 (除此之外,应该遵循对问题的第一个评论,而不是使用这个答案。)
答案 1 :(得分:1)
善良的上帝,这是丑陋的。试试这个尺寸:
$userid = mysql_result($recordset, $count, "userid");
$url = <<<EOL
<script type="text/javascript">
document.write('<a href="#" onclick="$(\'#UserID\').val({$userid})); return false;">Click here</a>');
/script>
<noscript><a href="scripts/updateuser.php?id={$userID}">Click here</a></noscript>
EOL;
我不会深入了解1990年的document.write,但是如何:
<?php
$userid = ...
?>
<a href="scripts/updateuser.php?id=<?php echo $userid ?>" onclick="$('#UserID').val({$userid}); return false;">Click here</a>