Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаление элементов 
V
    Опции темы
GoldFinch
Дата 27.5.2009, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



если удалить элемент используя removeChild() то всего дочерние элементы удалятся сами, или их надо рекурсивно обходить и вызывать для них removeChild()?
PM MAIL ICQ   Вверх
Soah
Дата 27.5.2009, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 13
Всего: 54



Списки узлов DOM. Динамика в примере
Цитата

сделаем функцию, чтобы удаляла все дочерние элементы узла. Она будет получать список узлов и по очереди удалять каждый, вот так:

Код

function removeChildren(node) {
    var children = node.childNodes
 
    for(var i=0;i<children.length; i++) {
        var child = children[i]
 
        node.removeChild(child)
    }
}


upd
Код

<script type="text/javascript">
    function foo() {
        //document.getElementById('txtParent').removeChild(document.getElementById('txtChild'));
        //alert(document.getElementById('txtChild'));
        document.getElementById('mainDiv').removeChild(document.getElementById('txtParent'));
        alert(document.getElementById('txtChild'));
    }
</script>

<div id="mainDiv">
    <div id="txtParent">
        <div id="txtChild">123</div>
    </div>
</div>

<input type="button" value="click" onclick="foo()" />


removeNode
Цитата

Метод удаляет текущий элемент из Web-страницы. 

        {Объект}.removeNode([true|false]);

Метод принимает всего один необязательный параметр, который задает удалять коллекцию childNodes удаляемого элемента страницы (значение true) или нет (значение false, которое используется по умолчанию). 
Метод возвращает ссылку на удаленный элемент. 
Поддерживается IE начиная с 5.0


FireFox и removeNode
Цитата

Код

HTMLElement.prototype.removeNode = function(removeChildren) {
  if (Boolean(removeChildren))
    return this.parentNode.removeChild(this);
  else {
    var r=document.createRange();
    r.selectNodeContents(this);
    return this.parentNode.replaceChild(r.extractContents(),this);
  }
}



Это сообщение отредактировал(а) Soah - 27.5.2009, 12:07
PM MAIL   Вверх
youri
Дата 27.5.2009, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



Цитата(GoldFinch @  27.5.2009,  11:20 Найти цитируемый пост)
то всего дочерние элементы удалятся сами

да
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.