Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.11.2016, 16:14
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

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

	});

Меняет через одну.
Ответить с цитированием
  #2 (permalink)  
Старый 26.11.2016, 16:36
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

ureech,
Либо прикол в том что ты когда достаешь элементы через getElements...
ты достаешь `живую` коллекцию и после замены начинаются косяки с пересчетом индексов,
либо ошибка на твоей стороне в плане косяков в тексте
Ответить с цитированием
  #3 (permalink)  
Старый 26.11.2016, 16:39
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Что значит `живую`?
Ответить с цитированием
  #4 (permalink)  
Старый 26.11.2016, 18:07
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

ureech,
Ну так называют динамические коллекции в противоположность статичным, `не живым` возвращаемым querySelectorAll

Короче прикол в том, ты когда пихаешь в свою переменную el = getElements.. происходит следующее:

1) Если ты добавишь потом другие элементы того же типа в документ у тебя все отразится в твоей переменной el

2) Удалишь где-то потом один из элементов коллекции и у тебя el уменьшится сам

А с querySelectorAll так не получится. Он тебе отдает все что есть без сохранения обратной связи.
Ответить с цитированием
  #5 (permalink)  
Старый 26.11.2016, 19:36
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Решил вопрос со стороны сервера.
$str = preg_replace('|<font[^>]*>([^<]*)</font>|', '<a class="word" href="">\1</a>', $str);

А на клиенте просто при клике добавляю адрес.
Ответить с цитированием
  #6 (permalink)  
Старый 26.11.2016, 21:19
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Cсылки, то поправил, но при наведении на любую показывает один и тот же адрес. Как то не красиво.Решил менять при hover
$('.word').hover(function(){
		var text = $(this).text();
		$(this).atrr('href','/search/sqlite/'+text)
		})

Но не работает. Хотелось бы узнать почему?
Ответить с цитированием
  #7 (permalink)  
Старый 26.11.2016, 22:08
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

$(this).atrr('href','/search/sqlite/'+text)


attr
Ответить с цитированием
  #8 (permalink)  
Старый 26.11.2016, 23:31
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Упсс... Спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена тегов Kost-iv Events/DOM/Window 4 01.11.2015 17:12
определить ширину див тега dadli Общие вопросы Javascript 6 20.02.2012 16:34
как получить значение ид-а, из текушего хтмл тега dadli Общие вопросы Javascript 2 28.01.2012 15:16
замена тега на работающии везде Александр х@к Элементы интерфейса 2 08.09.2011 23:48
Замена текста в атрибуте HTML тега, например часть url vasa666 Общие вопросы Javascript 6 24.02.2011 10:18