ie7 removeChild убирает не все теги
Необходимо убрать все теги "<a " со страницы.
Прогон этого скрипта убирает часть тегов var a = document.getElementsByTagName('a'); for (i=0; i<a.length; i++) {var elem = a[i]; elem.parentNode.removeChild(elem);} ...этот убирает еще парочку var g = document.getElementsByTagName('A'); for (i=0; i<g.length; i++) {var elem = g[i]; elem.parentNode.removeChild(elem);} Осталась вот такая запись .. </FORM><A .. Чем можно убрать? |
Цитата:
|
Попробуйте вот так
var anchor; while ( anchor = document.anchors[0] ) { anchor.parentNode && anchor.parentNode.removeChild( anchor ); } |
Цитата:
и в document.anchors будут якоря, а не ссылки. надеюсь, вы знаете разницу между ссылкой и якорем. и еще. сказано, что надо удалить все теги А, а не только ссылки или якори. имхо, можно написать так. var a = document.getElementsByTagName('a'), b; while( b = a[0] ) b.parentNode.removeChild( b ); |
Лучше так
var nodes = document.getElementsByTagName('a'), nodesInd = nodes.length; while (nodesInd--) { nodes[nodesInd].parentNode.removeChild(nodes[nodesInd]); } Помоему такая запись понятнее и мы исключаем проблему сдвига индексов просматривая их в обратную сторону. |
da_ff,
почему так понятнее, самый удачный вариат привел melky, IMHO. Свойство length лучше не использовать для работы с коллекциями, так как в IE имеется особенность с этим свойством. |
Вопрос "понятности" достаточно субьективен, но перебор коллекции как правило выглядит именно так.
Цитата:
|
da_ff,
если вы не знаете об этом поведении, это не значит, что я пишу глупости! http://javascript.ru/forum/misc/1920...tml#post116045 |
Цитата:
|
Riim,
по ссылке пример, который показывает особенность IE |
Часовой пояс GMT +3, время: 14:11. |