Замена тега.
Здравствуйте.Помогите, что то не выходит поменять тег.
Есть текст в котором втречаются <font color="#0000ff">текст</font> Нужно заменить все такие теги на ссылки.Делаю так $(document).ready( function () { el = document.getElementsByTagName('font') var i; var j = el.length; for (var i = 0; i < j; i++) { $(el[i]).replaceWith('<a href=a'+i+'>' + $(el[i]).text() + '</a>'); } }); Меняет через одну. |
ureech,
Либо прикол в том что ты когда достаешь элементы через getElements... ты достаешь `живую` коллекцию и после замены начинаются косяки с пересчетом индексов, либо ошибка на твоей стороне в плане косяков в тексте |
Что значит `живую`?
|
ureech,
Ну так называют динамические коллекции в противоположность статичным, `не живым` возвращаемым querySelectorAll Короче прикол в том, ты когда пихаешь в свою переменную el = getElements.. происходит следующее: 1) Если ты добавишь потом другие элементы того же типа в документ у тебя все отразится в твоей переменной el 2) Удалишь где-то потом один из элементов коллекции и у тебя el уменьшится сам А с querySelectorAll так не получится. Он тебе отдает все что есть без сохранения обратной связи. |
Решил вопрос со стороны сервера.
$str = preg_replace('|<font[^>]*>([^<]*)</font>|', '<a class="word" href="">\1</a>', $str); А на клиенте просто при клике добавляю адрес. |
Cсылки, то поправил, но при наведении на любую показывает один и тот же адрес. Как то не красиво.Решил менять при hover
$('.word').hover(function(){ var text = $(this).text(); $(this).atrr('href','/search/sqlite/'+text) }) Но не работает. Хотелось бы узнать почему?:) |
$(this).atrr('href','/search/sqlite/'+text) attr |
Упсс...:-? Спасибо.
|
Часовой пояс GMT +3, время: 19:18. |