Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.09.2008, 18:25
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Протетсть под всеми браузерами, нам потом расскажешь...
Ответить с цитированием
  #12 (permalink)  
Старый 04.09.2008, 22:39
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

appendChild переносит (перемещает) уже существующий в дереве DOM узел. Работает везде и во всех браузерах.
Ответить с цитированием
  #13 (permalink)  
Старый 04.09.2008, 22:50
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

вот и отлично!
Доверяй, но проверяй (мало ли как там в рекомендациях написано, браузеры делают, бывает, по-совему).
Ответить с цитированием
  #14 (permalink)  
Старый 05.09.2008, 13:35
Интересующийся
Отправить личное сообщение для Gekt0r Посмотреть профиль Найти все сообщения от Gekt0r
 
Регистрация: 13.08.2008
Сообщений: 28

Сообщение от Snipe Посмотреть сообщение
Либо innerHTML родительского для всех картинок блока и replace'ом по RegExp'у.
так можно, но уж слишком геморно получается в итоге, работать со строками, много всего надо учитывать.. Я хотел через DOM, так проще и эффективнее, но не совсем понимал, как это сделать


Сообщение от ZoNT Посмотреть сообщение
ну вообще-то есть такая штука как parentNode
var parent = img.parentNode;
parent.removeChild(img);
var elem = document.createElement("a");
elem.href="http//www.mail.ru";
elem.appendChild(img);
parent.appendChild(elem);
Вот это именно то, что надо, спасибо огромное!
Ответить с цитированием
  #15 (permalink)  
Старый 05.09.2008, 14:05
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Можно немного проще сделать:
var elem = document.createElement('a');
elem.href = 'url';
img.parentNode.insertBefore(elem, img);
elem.appendChild(img);

Последний раз редактировалось Octane, 05.09.2008 в 14:08.
Ответить с цитированием
  #16 (permalink)  
Старый 05.09.2008, 14:10
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Так даже лучше, так как сокращение кода - это увеличение скорости работы...
Ответить с цитированием
  #17 (permalink)  
Старый 05.09.2008, 15:06
Интересующийся
Отправить личное сообщение для Gekt0r Посмотреть профиль Найти все сообщения от Gekt0r
 
Регистрация: 13.08.2008
Сообщений: 28

Сообщение от Octane Посмотреть сообщение
Можно немного проще сделать:
var elem = document.createElement('a');
elem.href = 'url';
img.parentNode.insertBefore(elem, img);
elem.appendChild(img);
да, ощутимо быстрее, спасибо!
Плюс предыдущая версия почему-то меняла порядок картинок в случае, Если у родительского элемента было несколько детей-картинок.
Эта работает еще лучше)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кроссбраузерное добавление обработчика событий элементу krinart Events/DOM/Window 5 30.09.2008 04:38
Добавление стилей к вновь созданному элементу alexeews Общие вопросы Javascript 4 29.09.2008 01:40
Добавление элемента и работа с ним nvbn Events/DOM/Window 13 07.07.2008 19:07
Добавление новых полей к форме. EZh Элементы интерфейса 7 14.06.2008 04:05
Добавление строк в таблицу stanlee Элементы интерфейса 13 11.06.2008 17:38