2012-01-13 10 views
1

documentsフォルダに含まれるファイルへのリンクを見つけるためにjQueryセレクタを作成しようとしています。サイトのさまざまな場所に複数のドキュメントフォルダがあります。jQuery属性にスラッシュを含むテキストのセレクタが含まれています

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

をしかし、完全を期すために、私はどちらかの側にスラッシュを一致させたい:一致するように、サンプルのURLが

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

でこれが動作します。セレクタにスラッシュを含めるには、次のように2つのバックスラッシュを接頭辞として使用する必要があります。\\/しかし、それはスラッシュではなく、後続のスラッシュに対してのみ有効です。

これは動作します:

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

しかし、これはしません:私は間違っ

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

何をしているのですか? jsFiddle(http://jsfiddle.net/jA3AJ/)で

更新 、それは(同じブラウザは、Firefox 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?への回答によると、私は2つのバックスラッシュを使用する必要があります。 jsFiddleはどちらの方法でも動作します。実際に、それはありませんバックスラッシュで動作します:$("a[href*='/documents/'])"

私はjQueryの1.6.4を使用してい を更新しました。私はjsFiddle:http://jsfiddle.net/jA3AJ/1/を更新し、それはうまく動作します。

+0

どちらのバージョンの両方が現在の引用のセットアップで、私のために働いやAPIに示すように、それらを逆にしているあなたの単一引用符と二重引用符リバースWroking

。 http://jsfiddle.net/Tentonaxe/ykvw5/ –

+0

アンカータグはページに動的に追加されていますか? –

+0

いいえ、静的なマークアップに入っています。 –

答えて

2

私の作品です。 $("a[href*='\/documents\/']")を使用してください。スラッシュをエスケープしたい場合は、その前にエスケープ文字(\)を1つ入れてください。 2つのエスケープ文字は必要ありません。 Demo

+0

私は2番目のエスケープを見たこともありません...新しい連絡先が必要です –

+0

jsfiddleでは、すべてのバージョンが1つまたは2つのスラッシュ、任意の引用符で動作します。質問をより多くのコードで更新します。 –

+0

'$(" a href * = '/ documents /']) ''が動作する場合、なぜスラッシュを入れていますか? – ShankarSangoli

2

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

引用符を逆にすると違いはありません。 –

関連する問題