Internet Explorer中的JQuery选择器问题

时间:2009-10-07 19:19:12

标签: jquery internet-explorer jquery-selectors

我有一个jquery选择器,看起来像:

var val = "John's cars";
$('#subject input[value="'+val+'"]')

这适用于Firefox,Chrome,Internet Explorer 8,但不适用于IE 6或IE7。 问题是'在文本中搜索。 有人知道如何解决这个问题,除了循环所有输入并进行字符串比较?

3 个答案:

答案 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"