我想将“下载 PDF”添加到任何超链接,链接到 PDF 文件。目前,我能够添加该确切文本,但它会将其添加到超链接文本中。我希望它位于超链接元素之外,如下所示:下载 [hyperlink with text] 的 PDF
这是我现在使用的代码:
jQuery('a[href$=.pdf]').prepend('Download a PDF of ');
你以前试过吗?
jQuery('a[href$=.pdf]').before('Download a PDF of ');
无论如何,截至今天,答案中提供的其他选择器都是错误的。jQuery 会抱怨:
未捕获的错误:语法错误,无法识别的表达式:a[href$=.pdf]
选择锚点的正确方法是:
jQuery('a[href$=".pdf"]');
注意 .pdf 周围的引号
您可以将其包裹在一个内联元素(例如<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()完全按照您想要的方式工作,所以我会改为使用它。
这是一个示例,可以满足您的要求:
<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>