Internet Explorer中的JQuery选择器问题
我有一个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"