簡體   English   中英

Internet Explorer中的jQuery選擇器問題

[英]JQuery selector problem in Internet Explorer

我有一個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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM