-1

我知道我可以使用\',但这不是重点。假设我有“不能”这个词。它现在有“'”。这进入了函数中的 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

4 回答 4

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)。也就是说,如果一个单词不包含空格,则不需要引号。

于 2012-07-01T01:57:35.443 回答
0

这应该有效。如果内容有双引号,则将字符串包裹在单引号中并在其中转义单引号。

var hometeam = '"can\'t"';
$('#test').html(hometeam + 'VS' + awayteam)
于 2012-06-30T21:19:50.777 回答
0

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

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

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

于 2012-06-30T21:19:58.823 回答
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)).');\' />';
于 2012-06-30T21:37:17.160 回答