我知道我可以使用\',但这不是重点。假设我有“不能”这个词。它现在有“'”。这将进入类似函数的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')" />
那我怎么逃避这个?
编辑:我还没有找到完美的解决方案,所以我刚刚更改了数据库中的单词并暂时添加了“\”...答案 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)。也就是说,如果一个单词不包含空格,则不需要报价。