Замена тега.
Здравствуйте.Помогите, что то не выходит поменять тег.
Есть текст в котором втречаются <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, время: 22:51. |