jQuery append () добавление в начале - PullRequest
1 голос
/ 14 июля 2011

Я хочу превратить что-то вроде <sup>1</sup> в <sup><a href="..." class="...">1</a></sup> Я подумал, что проще всего было бы добавить <a href....> и добавить </a>, но добавление не идет после содержимого (1) ...

Я знаю, что мог бы сделать секунду .each() и сохранить 1 как переменную, а затем сделать .html(), но я полагаю, что это не лучшая практика, так как она включает в себя еще один цикл.

Спасибо !!

http://jsfiddle.net/pqzL4/

Ответы [ 5 ]

6 голосов
/ 14 июля 2011

@ Ответ Даффа должен решить вашу проблему. Причина, по которой это не работает, заключается в том, что, как только вы это сделаете:

$(this).prev(".article").find("sup").prepend("<a href=\"#references" + (i + 1) + "\" class=\"references\">");

Добавляется немедленно. Поскольку закрытый тег недействителен, браузер «исправит» его, закрыв для вас тег.

Затем вы пытаетесь добавить закрывающий тег в конец, который недопустим без открытого тега, поэтому браузер игнорирует его.

4 голосов
/ 14 июля 2011

Думаю, вы захотите посмотреть jQuery wrapInner .

$('sup').wrapInner('<a href="#"></a>');

, который обернет текст любого сообщения ссылкой.

1 голос
/ 14 июля 2011

Я думаю, что вы ищете "wrapInner ()".Он берет содержимое одного элемента и оборачивает его элементом, который вы передаете. Что-то вроде

$('sup').wrapInner('<a href...></a>') 
1 голос
/ 14 июля 2011

Вы не можете добавлять или добавлять фрагменты HTML;Вы можете работать только с полными тегами.

Вы ищете wrap.

Описание : Wrapструктура HTML вокруг каждого элемента в наборе соответствующих элементов.

0 голосов
/ 14 июля 2011

Попробуйте это:

$(this).prev(".article").find("sup").append('<a>' + $(this).prev(".article").find("sup").text() + '</a>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...