我有一个jquery选择器,看起来像:
var val = "John's cars";
$('#subject input[value="'+val+'"]')
这适用于Firefox,Chrome,Internet Explorer 8,但不适用于IE 6或IE7。 问题是'在文本中搜索。 有人知道如何解决这个问题,除了循环所有输入并进行字符串比较?
答案 0 :(得分:4)
试试这个:
var val = "John's cars";
$('#subject input').filter(function() {
return this.value == val;
});
答案 1 :(得分:3)
尝试使用反斜杠
转义'
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将其指出。
答案 2 :(得分:0)
我敢打赌它是搜索值中的撇号 - 尝试使用
转义它"John\'s cars"