Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   добавление ссылок к картинкам (https://javascript.ru/forum/misc/1699-dobavlenie-ssylok-k-kartinkam.html)

ZoNT 04.09.2008 18:25

Протетсть под всеми браузерами, нам потом расскажешь...

Octane 04.09.2008 22:39

appendChild переносит (перемещает) уже существующий в дереве DOM узел. Работает везде и во всех браузерах.

ZoNT 04.09.2008 22:50

вот и отлично!
Доверяй, но проверяй (мало ли как там в рекомендациях написано, браузеры делают, бывает, по-совему).

Gekt0r 05.09.2008 13:35

Цитата:

Сообщение от Snipe (Сообщение 5346)
Либо innerHTML родительского для всех картинок блока и replace'ом по RegExp'у.

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


Цитата:

Сообщение от ZoNT (Сообщение 5355)
ну вообще-то есть такая штука как 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);

Вот это именно то, что надо, спасибо огромное!

Octane 05.09.2008 14:05

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

ZoNT 05.09.2008 14:10

Так даже лучше, так как сокращение кода - это увеличение скорости работы...

Gekt0r 05.09.2008 15:06

Цитата:

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

да, ощутимо быстрее, спасибо!
Плюс предыдущая версия почему-то меняла порядок картинок в случае, Если у родительского элемента было несколько детей-картинок.
Эта работает еще лучше)


Часовой пояс GMT +3, время: 07:17.