jquery добавить / prepend / wrapInner? - PullRequest
1 голос
/ 04 января 2012

Предполагаемый результат:

<li><a><span class="icon"></span><span class="text">Link Text</span></a></li>

Начиная с HTML:

<li><a>Link Text</a></li>

Я пытался использовать .prepend() с .append() и отдельно .wrapInner(), но ни один из них не дал желаемого результата.

$('li a').wrapInner("<span class='icon'></span><span class='text'></span>");

Выходы:

<li><a><span class="icon">Link Text</span></a></li>
$('li a').prepend("<span class='icon'></span><span class='text'>");
$('li a').append("</span>");

Выходы:

<li><a><span class="icon"></span><span class='text'></span>Link Text</a></li>

Есть ли способ добиться того, чего я хочу?

Ответы [ 4 ]

5 голосов
/ 04 января 2012

проверьте мой jsFiddle здесь.Я использовал, как показано ниже,

$('li a').wrapInner("<span class='text'></span>");

$('li a').prepend("<span class='icon'></span>");

Если вы хотите в 1 строку, то используйте как показано ниже

$('li a').wrapInner("<span class='text'></span>").prepend("<span class='icon'></span>");

DEMO здесь

2 голосов
/ 04 января 2012

Примерно так должно работать:

$('li a').html('<span class="icon"></span><span class="text">' + $('li a').html() + '</span>');
0 голосов
/ 04 января 2012

Что-то не так с этим?

text = $('li a').html();
$('li a').html("<span class='icon'></span><span class='text'>"+text+"</span>");
0 голосов
/ 04 января 2012

Кажется, это работает немного лучше:)

var curText = $('li a').text();

$('li a').html("<span class='icon'></span><span class='text'>"+curText+"</span>");

http://jsfiddle.net/zqUmL/5/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...