我希望将“下载PDF”添加到链接到PDF文件的任何超链接。 目前,我可以预先确定该文本,但它将其预先添加到超链接文本中。我想它驻留在超链接元素以外,像这样:下载[超链接文本]jQuery预先链接到链接到PDF文件的所有超链接元素
的PDF这是代码我使用的是现在:
jQuery('a[href$=.pdf]').prepend('Download a PDF of ');
我希望将“下载PDF”添加到链接到PDF文件的任何超链接。 目前,我可以预先确定该文本,但它将其预先添加到超链接文本中。我想它驻留在超链接元素以外,像这样:下载[超链接文本]jQuery预先链接到链接到PDF文件的所有超链接元素
的PDF这是代码我使用的是现在:
jQuery('a[href$=.pdf]').prepend('Download a PDF of ');
你以前试过吗?
jQuery('a[href$=.pdf]').before('Download a PDF of ');
你可以在一个内联元素(例如<span>
)和insert it before所需的元素包起来。下面是一个SSCCE,只是copy'n'paste'n'run它:
<!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来更新答案并提供一个工作示例。 – 2010-01-31 18:05:18
是的。我只是没有完全意识到'before()'的存在和好处。现在我做:) – BalusC 2010-01-31 18:13:07
下面是一个例子,将你在寻找什么:
<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的会抱怨:
未捕获的错误:语法错误,无法识别的表达:一个[HREF $ = PDF]
选择锚正确的做法是:
jQuery('a[href$=".pdf"]');
注意周围的报价。 pdf
+1很好的答案。它的工作原理:http://jsbin.com/akiba3我承认,我拿了@ BalusC的SSCCE,并改变了一条线,用你的解决方案来运行我的测试。 – 2010-01-31 18:06:28
甜!我<3 jQuery。这让我的生活变得更加轻松。 = D – AlteredConcept 2010-01-31 18:10:11
确实如此。没有意识到这一点。 – BalusC 2010-01-31 18:11:31