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, время: 00:04. |