如何在jQuery中转义单引号?

时间:2012-06-30 21:16:56

标签: javascript jquery html

我知道我可以使用\',但这不是重点。假设我有“不能”这个词。它现在有“'”。这将进入类似函数的var:

function active(id,clas,match,hometeam,awayteam){

所以让我们说hometeam的价值是“不能”。当我尝试使用此代码时:

$('#test').html(hometeam + " VS " + awayteam);

它不起作用,因为它基本上有:

$('#test').html(can't + " VS " + awayteam);

我该如何解决这个问题?

编辑:

我认为问题不在于jQuery。调用此函数的行是这一行:

<input type="button" id="btn" value="1.4" class="butta" onmousedown="active('btn','buttdowna','match1','hometeam','awayteam')" />

那我怎么逃避这个?

编辑:我还没有找到完美的解决方案,所以我刚刚更改了数据库中的单词并暂时添加了“\”...

4 个答案:

答案 0 :(得分:0)

这应该有效。如果内容有双引号,则将字符串换成单引号并转义单引号。

var hometeam = '"can\'t"';
$('#test').html(hometeam + 'VS' + awayteam)

答案 1 :(得分:0)

变量返回的值不需要在javascript中进行转义。如果您遇到问题,还有其他一些潜在问题。

编辑:根据您的问题编辑,如果您使用can't作为您需要的参数之一,则需要在函数调用中转义值

<input type="button" id="btn" value="1.4" class="butta" onmousedown="active('btn','buttdowna','can\'t','hometeam','awayteam')" />

答案 2 :(得分:0)

问题是您正在使用字符串操作来构建HTML。使用jQuery / DOM方法,你就不会遇到这个问题。

另一种方法是逃避报价,但与先前的建议相比,这真的很难看。


由于您是在PHP中创建HTML,请执行以下操作:

echo '<input type="button" id="btn" value="1.4" class="butta" onmousedown=\'active("btn","buttdowna","match1",'.htmlspecialchars(json_encode($foo)).', '.htmlspecialchars(json_encode($bar)).');\' />';

答案 3 :(得分:0)

您可以像这样更改HTML部件,

<input type="button" id="btn" value="1.4" class="butta" onmousedown=active("btn","buttdowna","match1","can't","awayteam") />

在没有报价的HTML属性中也可以使用。报价用于分组。示例)title =“Click Event”将起作用,title = Click Event将仅取第一个值(Click)。也就是说,如果一个单词不包含空格,则不需要报价。