Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2011, 11:44
Новичок на форуме
Отправить личное сообщение для koroleva.o Посмотреть профиль Найти все сообщения от koroleva.o
 
Регистрация: 21.08.2011
Сообщений: 1

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 
..


Чем можно убрать?
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2011, 11:48
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от koroleva.o Посмотреть сообщение
Осталась вот такая запись
..
 </FORM><A 
..
Так это не ссылка? Обрывается неожиданно в коде или только тут?
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2011, 12:56
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Попробуйте вот так
var anchor;
while ( anchor = document.anchors[0] ) {
    anchor.parentNode && anchor.parentNode.removeChild( anchor );
}

Последний раз редактировалось nikita.mmf, 14.09.2011 в 12:59.
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2011, 13:09
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от nikita.mmf Посмотреть сообщение
Попробуйте вот так
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 );

Последний раз редактировалось melky, 14.09.2011 в 13:14.
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2011, 14:30
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Лучше так
var
  nodes = document.getElementsByTagName('a'),
  nodesInd = nodes.length;
while (nodesInd--) {
  nodes[nodesInd].parentNode.removeChild(nodes[nodesInd]);
}

Помоему такая запись понятнее и мы исключаем проблему сдвига индексов просматривая их в обратную сторону.
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2011, 15:30
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

da_ff,
почему так понятнее, самый удачный вариат привел melky, IMHO.

Свойство length лучше не использовать для работы с коллекциями, так как в IE имеется особенность с этим свойством.
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2011, 15:49
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Вопрос "понятности" достаточно субьективен, но перебор коллекции как правило выглядит именно так.

Цитата:
Свойство length лучше не использовать для работы с коллекциями, так как в IE имеется особенность с этим свойством.
Либо приводите пример кода, где length ведет себя "по-особенному" для коллекции полученной через getElementsByTagName, либо не пишите глупостей.
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2011, 16:46
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

da_ff,
если вы не знаете об этом поведении, это не значит, что я пишу глупости!
Работа с циклом for
Ответить с цитированием
  #9 (permalink)  
Старый 15.09.2011, 16:49
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от nikita.mmf
если вы не знаете об этом поведении, это не значит, что я пишу глупости!
Работа с циклом for
причем здесь это?
Ответить с цитированием
  #10 (permalink)  
Старый 15.09.2011, 16:51
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Riim,
по ссылке пример, который показывает особенность IE
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить все теги <a> из <ul> ? weeklyTea Элементы интерфейса 15 21.06.2011 14:17
Взаимодействие фреймов. IE7 Svarog81 Internet Explorer 1 03.03.2011 13:08
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
Убирает теги подскажите KonstantinK Элементы интерфейса 12 09.07.2010 17:43
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37