2010-01-31 2 views
4

Я хотел бы добавить «Загрузить PDF-файл» к любым гиперссылкам, ссылаясь на файлы PDF. В настоящее время я могу добавить этот точный текст, но он добавляет его в текст гиперссылки. Я хотел бы, чтобы находиться вне элемента гиперссылок, например: Загрузить PDF-файл по [гиперссылке с текстом]jQuery добавить все элементы гиперссылки, которые ссылаются на файлы PDF

Это код, я использую в настоящее время:

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

ответ

4

Пытались ли вы раньше?

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

+1 отличный ответ. Он работает: http://jsbin.com/akiba3. Я признаюсь, я взял @ SSCCE BalusC и изменил одну строку, чтобы использовать ваше решение для запуска моего теста. –

+0

Сладкий! I <3 jQuery. Это делает мою жизнь намного проще. = D – AlteredConcept

+0

+1 действительно. Не понял этого. – BalusC

2

Вы можете обернуть его в строковый элемент (например, <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> 

Edit: ах, как и ответил прежде, jQuery.before() работает именно так, как вы хотите, так что я бы пойти на это вместо этого.

+0

«span» не требуется, но он необходим, используя его так, как вы показываете здесь (с '$()' и 'insertBefore'), но +1 для обновления вашего ответа и предоставления рабочего примера. –

+0

Да точно. Я просто не знал о существовании и выгоде 'before()'. Теперь я делаю :) – BalusC

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

Другие селекторы, которые были указаны в ответах не правы, так как на сегодняшний день в любом случае. JQuery будет жаловаться:

неперехваченной Ошибки: ошибка синтаксиса, непризнанное выражение: а [. HREF $ = PDF]

правильный путь, чтобы выбрать анкер:

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

Обратите внимание на кавычках. pdf

Смежные вопросы