2012-01-13 50 views
1

我正在嘗試編寫一個jQuery選擇器來查找包含在documents文件夾中的文件的鏈接。網站上的各個地方都有幾個文檔文件夾。樣本URL匹配是jQuery屬性包含與包含斜線的文本的選擇器

http://example.com/magazine/volume5/documents/magazine2010_11-8_final.pdf 

這工作:

$("a[href*='documents']") 

但爲了完整,我想匹配兩邊的斜線。我看到要在選擇器中包含斜槓,我需要在它前面加上兩個反斜槓,如下所示:\\/。但這隻適用於最後的斜線,而不是主要的斜線。

這工作:

$("a[href*='documents\\/']") 

但這並不:

$("a[href*='\\/documents\\/']") 

我在做什麼錯?

更新 上的jsfiddle(http://jsfiddle.net/jA3AJ/),它的工作原理,但不是我的網站上(使用相同的瀏覽器,火狐4.0)。我完整的代碼片段是

<script type="text/javascript"> 
    // Instrument download links for GA 
    $(document).ready(function() { 
     $("a[href*='\\/documents\\/']").click(function() { 
      alert("Download: " + this.pathname); 
      // if (typeof _gaq !== 'undefined') { _gaq.push(["_trackEvent", "Files", "Download", this.pathname]); } 
     }); 
    }); 
</script> 

根據這個問題的答案How do I get jQuery to select elements with a . (period) in their ID?,我需要用兩個反斜槓。 jsFiddle無論如何都適合我。事實上,它的工作原理沒有反斜槓:$("a[href*='/documents/'])"

更新 我使用jQuery 1.6.4。我更新了jsFiddle:http://jsfiddle.net/jA3AJ/1/,那裏,它工作正常。

+0

兩個版本都爲我工作,既與當前報價設置和倒車它們如圖API。 http://jsfiddle.net/Tentonaxe/ykvw5/ – 2012-01-13 21:04:18

+0

是否將錨標籤動態添加到頁面中? – 2012-01-13 21:21:01

+0

不,他們處於靜態標記。 – 2012-01-13 21:26:23

回答

2

它的作品適合我。使用$("a[href*='\/documents\/']")。如果你想逃避正斜線,只需在其前面放置一個轉義字符(\)。你不需要2個轉義字符。

Wroking Demo

+0

我甚至沒有看到第二次逃脫...需要新的聯繫人 – 2012-01-13 21:15:03

+0

在jsfiddle上,所有版本都可以工作 - 一個或兩個斜線,任何引號順序。我會用更多的代碼更新我的問題。 – 2012-01-13 21:15:51

+0

如果'$(「a [href * ='/ documents /'])」'起作用,他們爲什麼要放斜槓? – ShankarSangoli 2012-01-13 21:47:55

2

反向的單引號和雙引號

$('a[href*="\/documents\/"]') 
+0

扭轉報價沒有區別。 – 2012-01-13 21:13:18