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 文件的所有超链接元素的主要内容,如果未能解决你的问题,请参考以下文章