2015-08-19 98 views
1

當使用特殊字符來查找像下面這樣的元素時$("#[email protected]")會發生異常。如何解決它? 我試過使用所有特殊字符,但它與*字符一樣沒有任何錯誤$("#search*"),但其他#$%^&()拋出一個錯誤。所以爲什麼它接受*字符,但爲什麼其他字符不。爲什麼jquery id選擇器不支持特殊字符

+0

檢查ID,類,名稱屬性命名的標準方式。 – RRK

+1

[哪些字符在CSS類名稱/選擇器中有效?]的可能重複(http://stackoverflow.com/questions/448981/which-characters-are-valid-in-css-class-names-selectors) –

回答

2

如果您有id s的特殊字符,那麼在訪問它們時,應該使用\\(兩個反斜槓)將它們轉義出來。但據我所知,只有html5才允許。

jqueryselector documentation

要使用任何的元字符(如 !「#$%&「()的* +,陳述。/ :; < =>?@ [] ^`{|}〜)作爲名稱的文字部分,它必須用兩個反斜槓進行轉義:例如,一個包含 id =「foo.bar」的元素可以使用選擇符$(「#」 foo \ .bar「)

alert($("#search\\$").html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div id="search$">Heh</div>

0

許多特殊字符不允許(Which characters are valid in CSS class names/selectors?)。

通過查找除特殊字符以外的所有字符,還可以選擇您想要的內容,以查看標籤的id中的某些內容,包括開始,結束或包含某處的內容。

  1. 始於:jQuery ID starts with

    $('[id^="start-with"]') 
    
  2. 結尾爲:jQuery ID Contains

    $('[id*="any-spot-at-all"]') 
    
  3. jQuery Selector: Id Ends With?

    $('[id$="ending-part"]') 
    
  4. 內所含的地方0

還有其他的辦法當然是「皮貓」 - 例如一些其他選擇的選項,找到只idclass或任何其他HTML標記屬性可以在http://api.jquery.com/category/selectors/attribute-selectors/發現的一部分。