jQuery 预先添加到链接到 PDF 文件的所有超链接元素

Posted

技术标签:

【中文标题】jQuery 预先添加到链接到 PDF 文件的所有超链接元素【英文标题】:jQuery prepend to all hyperlink elements that link to PDF files 【发布时间】:2010-01-31 17:55:54 【问题描述】:

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

这是我现在使用的代码:

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

【问题讨论】:

【参考方案1】:

你以前试过吗?

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

【讨论】:

+1 好答案。它有效:jsbin.com/akiba3 我承认,我拿了@BalusC 的 SSCCE 并更改了一行以使用您的解决方案来运行我的测试。 甜蜜!我 +1 我也输入了 Balus 的答案,但在看到这个答案时将其丢弃:) 干得好,@AlteredConcept。【参考方案2】:

到目前为止,答案中提供的其他选择器都是错误的。 jQuery 会抱怨:

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

选择锚点的正确方法是:

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

注意 .pdf 周围的引号

【讨论】:

【参考方案3】:

您可以将其包装在一个内联元素中(例如<span>)和insert it before 所需的元素。这是一个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() 的工作方式完全符合您的要求,所以我会改为使用它。

【讨论】:

不需要span,但需要按照您在此处显示的方式使用它(使用$()insertBefore),但+1 用于更新您的答案并提供工作示例. 是的。我只是没有完全意识到before() 的存在和好处。现在我做:)【参考方案4】:

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

<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>

【讨论】:

以上是关于jQuery 预先添加到链接到 PDF 文件的所有超链接元素的主要内容,如果未能解决你的问题,请参考以下文章

如果链接包含特定文本,则jQuery将类添加到href

PYQT5 - 链接到导出的 pdf 中的页面

当包含特定文件扩展名时,如何将类添加到超链接?

jquery如何获取子标签的IDŀ

POST 到服务器,接收 PDF,使用 jQuery 交付给用户

PHP:预先填写 PDF 文件的字段并将其保存为默认值