好吧,我的查询是,如何在Javascript中转义引号?我正在尝试使用下面的代码提醒消息。我知道它不起作用,因为它在onClick函数调用&中包含双引号中的字符串。它给出了语法错误。我如何使其工作。我的条件是我不能在函数调用中使用单引号作为参数。
<html>
<head>
<script type="text/javascript">
function litString(vals)
{
alert(vals);
}
</script>
</head>
<body>
<?php echo "Just for a Test<br/>"; ?>
<a href="#" onClick="litString("test one")"><h2>JS String Literal</h2></a>
</body>
</html>
更新
我的目的是使下面的PHP + JS代码组合起作用。
echo '<li><a href="#" title="'.$res_bb['eng'].'" onClick=loadChap('.$res_bb['id'].','.$res_bb['chapters'].',"'.$res_bb['mal'].'")><font size="2">'.$res_bb['mal'].'</font></a></li>';
答案 0 :(得分:6)
您使用反斜杠\
转义引号。
<a href="#" onClick="litString(\"test one\")"><h2>JS String Literal</h2></a>
或者您可以使用单引号:
<a href="#" onClick="litString('test one')"><h2>JS String Literal</h2></a>
或者您可以在属性周围使用单引号,并在内部使用双引号:
<a href="#" onClick='litString("test one")'><h2>JS String Literal</h2></a>
如果你回应字符串,它会变得有点棘手,因为你还必须处理PHP的引用。在这里,我通过转义单引号来生成上面的第二个版本。
echo '<li><a href="#" title="'.$res_bb['eng'].'" onClick="loadChap('.$res_bb['id'].','.$res_bb['chapters'].',\''.$res_bb['mal'].'\')"><font size="2">'.$res_bb['mal'].'</font></a></li>';
我刚用输入测试了这个:
$res_bb = array('eng'=> "Title", 'id'=> 10, 'chapters'=> 13, 'mal'=> "Foo bar");
输出结果为:
<li><a href="#" title="Title" onClick="loadChap(10,13,'Foo bar')"><font size="2">Foo bar</font></a></li>
答案 1 :(得分:3)
我建议使用addEventListener
和data-*
属性for a cleaner approach:
<a href="#" id="someButton" data-litString="test one">...
<script>
var link = document.getElementById('someButton');
link.addEventListener('click', function () {
var vals = this.getAttribute('data-litString');
alert(vals);
});
</script>
答案 2 :(得分:0)
对HTML属性使用单引号:
onClick='litString("test one")'
但这不是一个真正的解决方案。你需要以某种方式逃避那些双引号。
答案 3 :(得分:0)
也许最好这样走......
<li><a href="#" title="<?php echo $res_bb['eng']; ?>" onClick=loadChap("<?php echo $res_bb['id']; ?>", "<?php echo $res_bb['chapters']; ?>"," <?php echo $res_bb['mal']; ?>")><font size="2"><?php echo $res_bb['mal']; ?></font></a></li>