<select id='test' size='1'><option value='this"'>this"</option></select>
这些都不起作用:
if ($('#test option[value="this""]').length == 0 ) {
$('body').append('true');
}
else {$('body').append('false');}
if ($("#test option[value='this"']").length == 0 ) {
$('body').append('true');
}
else {$('body').append('false');}
修改
问题可能过于简化。值字符串实际上是从另一个源派生的变量,因此我不知道在哪里添加转义字符。
我原以为:var temp = mySTRING.replace('\"','\\\"');
会有效,但事实并非......
答案 0 :(得分:2)
使用转义字符匹配引号。
if ($("#test option[value='this\"']").length == 0 ) {
$('body').append('true');
}
else {$('body').append('false');}
<强>更新强>
为了响应您的更新,您说值字符串在变量中,因此您可以使用转义字符替换它。
var value = "this"";
value = value.replace(""", "\"");
if ($("#test option[value='" + value + "']").length == 0 ) {
$('body').append('true');
}
else {$('body').append('false');}
答案 1 :(得分:2)
您可以将过滤器功能与正则表达式一起使用,以获取包含'
或"
var x = $('#test option').filter(function () {
return /'|"/.test(this.value);
});
if (x.length) {
$('body').append(x.length + ' true');
} else {
$('body').append('false');
}