jQuery добавляется ко всем элементам гиперссылок, которые ссылаются на файлы PDF - PullRequest
4 голосов
/ 31 января 2010

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

Это код, который я сейчас использую:

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

Ответы [ 4 ]

4 голосов
/ 08 апреля 2014

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

Uncaught Error: синтаксическая ошибка, нераспознанное выражение: a [href $ =. Pdf]

Правильный способ выбора якоря:

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

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

4 голосов
/ 31 января 2010

Вы пробовали раньше?

jQuery('a[href$=.pdf]').before('Download a PDF of ');
2 голосов
/ 31 января 2010

Вы можете заключить его во встроенный элемент (например, <span>) и вставить его до нужных элементов. Вот SSCCE , просто скопируйте и запустите его:

<!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 голосов
/ 31 января 2010

Вот пример, который будет делать то, что вы ищете:

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