jQuery属性包含带有包含斜杠的文本的选择器

时间:2012-01-13 20:58:34

标签: jquery

我正在尝试编写一个jQuery选择器来查找documents文件夹中包含的文件的链接。网站上的不同位置有几个文档文件夹。要匹配的示例网址是

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/)上,它可以工作,但不在我的网站上(使用相同的浏览器,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?的答案,我需要使用两个反斜杠。无论是哪种方式,jsFiddle都适合我。事实上,它没有反斜杠:$("a[href*='/documents/'])"

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

2 个答案:

答案 0 :(得分:2)

它适合我。使用$("a[href*='\/documents\/']")。如果你想要转义正斜杠,只需在它前面放一个转义字符(\)。您不需要2个转义字符。

Wroking Demo

答案 1 :(得分:2)

反转您的单引号和双引号

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