我有一个 jquery 选择器,看起来像:
var val = "John's cars";
$('#subject input[value="'+val+'"]')
这适用于 Firefox、Chrome、Internet Explorer 8,但不适用于 IE 6 或 IE7。问题是文本搜索中的'。有人知道如何解决这个问题,除了遍历所有有问题的输入并进行字符串比较?
我有一个 jquery 选择器,看起来像:
var val = "John's cars";
$('#subject input[value="'+val+'"]')
这适用于 Firefox、Chrome、Internet Explorer 8,但不适用于 IE 6 或 IE7。问题是文本搜索中的'。有人知道如何解决这个问题,除了遍历所有有问题的输入并进行字符串比较?
试试这个:
var val = "John's cars";
$('#subject input').filter(function() {
return this.value == val;
});
尝试'
用反斜杠转义
var val = "John\'s cars";
$('#subject input[value="'+val+'"]')
来自jQuery
选择器中的特殊字符
如果您希望将上述任何元字符用作名称的文字部分,则必须使用反斜杠 () 转义该字符。由于 Javascript 在字符串文字中使用反斜杠作为转义序列,因此您必须在字符串文字中使用两个反斜杠 (\),以便将单个反斜杠放入字符串中。
例子:
"#foo\\:bar"
"#foo\\[bar\\]"
"#foo\\.bar"
需要转义的完整字符列表:
#;&,.+*~':"!^$[]()=>|/
编辑:
由于该值在字符串文字中,因此需要进行双重转义。所以这行得通
var val = "John\\'s cars";
$('#subject input[value="'+val+'"]')
感谢bobince指出这一点。
我敢打赌这是搜索值中的撇号 - 尝试使用转义它
"John\'s cars"