4

我想将“下载 PDF”添加到任何超链接,链接到 PDF 文件。目前,我能够添加该确切文本,但它会将其添加到超链接文本中。我希望它位于超链接元素之外,如下所示:下载 [hyperlink with text] 的 PDF

这是我现在使用的代码:

jQuery('a[href$=.pdf]').prepend('Download a PDF of ');
4

4 回答 4

6

你以前试过吗?

jQuery('a[href$=.pdf]').before('Download a PDF of ');
于 2010-01-31T17:58:54.137 回答
5

无论如何,截至今天,答案中提供的其他选择器都是错误的。jQuery 会抱怨:

未捕获的错误:语法错误,无法识别的表达式:a[href$=.pdf]

选择锚点的正确方法是:

jQuery('a[href$=".pdf"]');

注意 .pdf 周围的引号

于 2014-04-08T09:47:35.963 回答
2

您可以将其包裹在一个内联元素(例如<span>)中并将其插入到所需元素之前。这是一个SSCCE,只需复制'n'paste'n'运行它:

<!doctype html>
<html lang="en">
    <head>
        <title>SO question 2172666</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $('<span>Download a PDF of </span>').insertBefore('a[href$=.pdf]');
            });
        </script>
    </head>
    <body>
        <p><a href="foo.pdf">foo.pdf</a></p>
        <p><a href="foo.exe">foo.exe</a></p>
        <p><a href="bar.pdf">bar.pdf</a></p>
    </body>
</html>

编辑:啊,正如之前回答的那样,jQuery.before()完全按照您想要的方式工作,所以我会改为使用它。

于 2010-01-31T18:00:47.100 回答
0

这是一个示例,可以满足您的要求:

<a href="foo.pdf">Foo</a>
<a href="bar.pdf">Bar</a>
<span id='foo'>Download a pdf of </span>
<script type='text/javascript'>
$('#foo').insertBefore('a[href$=.pdf]');
</script>
于 2010-01-31T18:08:48.143 回答