2011-03-17 4 views
0

У меня есть HTML, как этоJQuery Wrap innerHTML

<a href="#">like me on facebook</a> 

и я хочу, чтобы обернуть текст фейсбук, так что результат будет выглядеть следующим образом

<a href="#">like me on <span class="facebook-text">facebook</span></a> 

, как сделать это в JQuery?

ответ

6
var html = $('a').html(); 
$('a').html(html.replace(/facebook/, '<span class="facebook-text">facebook</span>')); 

и если вы хотите, чтобы заменить все вхождения Facebook в строке:.

var html = $('a').html(); 
$('a').html(html.replace(/facebook/gi, '<span class="facebook-text">facebook</span>')); 
+0

сделал замену() является JQuery API? Я ищу объяснение 'replace()' в api.jquery.com, но не могу найти его – GusDeCooL

+0

@GusDe CooL, нет, это [plain 'ol javascript] (https://developer.mozilla.org/en/JavaScript/ Ссылка/Global_Objects/String/заменить). –

+0

Спасибо .. сейчас его рабочий :) – GusDeCooL

1

Может быть, вы могли бы использовать $ (...) содержание() функции для доступа дочерних узлов ваш якорный тэг.

http://api.jquery.com/contents/

+0

спасибо, но мне нужен пример кода, который он работает – GusDeCooL

+0

Это может не ответить на вопрос оп, но он действительно решил мою проблему. Следующий образец должен обернуть все содержимое, а не только текст «facebook»: '$ ('a'). Contents(). Wrap ('