5 / 5 / 3
Регистрация: 13.03.2010
Сообщений: 276

Удаление дочерних элементов с использованием DOM

22.01.2016, 10:22. Показов 983. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Есть список(ul с id=s), как удалить все пробелы в нем(чтоб елемент nodelist=getElementById("s").ChildNodes не местил пробелов) остались только елементы li.
Зарание спасибо за ответы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2016, 10:22
Ответы с готовыми решениями:

Удаление дочерних узлов (DOM)
Привет! Такой вопрос. Есть элемент elem1, у которого имеются дочерние узлы. Если я с помощью метода removeChild() удалю elem1, то...

Проверить наличие класса у дочерних элементов через путешествие по DOM
Доброго времени суток. Возникла такая задача, есть несколько блоков <section> <div class="card-product-img-block"> ...

Удаление элементов DOM
Функция работает не корректно. Элементы создаются нормально, а вот удаляются только 5. А надо после что бы все удалялись. Как сделать...

3
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
22.01.2016, 11:14
Добавил удаление переноса и строк табуляции. Если это не нужно, то оставить только \s
JavaScript
1
2
var ulHtml = document.getElementById('s').outerHTML.replace(/[\s\t\r\n]/g, '');
console.log(ulHtml);
1
5 / 5 / 3
Регистрация: 13.03.2010
Сообщений: 276
22.01.2016, 21:29  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!DOCTYPE html>
<html>
<head>
    <title>DOM (Document Object Model)</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript">
            
        function old(){
            var ulHtml = document.getElementById('menu').outerHTML.replace(/[\s\t\r\n]/g, '');
            console.log(ulHtml);
                        }
                
        function add() {
            var list = document.getElementById("menu");
            var li = document.createElement("li");
            li.innerHTML = "<a href='#'>" + "Ссилка" + " " + 1 + "</a>";
            list.appendChild(li);
                        }
                        
        function deletes(){
                var list = document.getElementById("menu");
                list.removeChild(list.lastChild);
                        }
    </script>
</head>
<body onLoad="old()">
    <ul id="menu">
        <li>
            <a href="#">Ссылка 1</a>
        </li>
        <li>
            <a href="#">Ссылка 2</a>
        </li>
        <li>
            <a href="#">Ссылка 3</a>
        </li>
        <li>
            <a href="#">Ссылка 4</a>
        </li>
        <li>
            <a href="#">Ссылка 5</a>
        </li>
    </ul>
    <a href="#" onClick="add()">Додати</a> 
    <a href="#" onClick="deletes()">Удалити</a>
</body>
</html>
Подскажите пожалуйста почему для того чтобы удалить елемент списка сначала нужно два разы нажимать ссылку удалить?После того как все елементы удалины и заново доданы с помощью ссылки додати вже все удаляется нормально.
Зарание спасибо за ответы.
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
22.01.2016, 22:42
Цитата Сообщение от mishan4uk Посмотреть сообщение
чтобы удалить елемент списка сначала нужно два разы нажимать ссылку удалить?
Между элементами есть переносы строк. Это текстовые узлы (TextNode), которые, по сути, считаются такими же элементами страницы. Вот и получается, что при первом клике удаляется текстовый узел, а при втором клике уже элемент списка <li>. А при добавлении элементов динамически, они добавляются без переноса, а значит текстовых узлов между ними не существует.
Решить задачку можно несколькими способами. Вот парочка таких:
JavaScript
1
2
3
4
5
// пишем вместо
// list.removeChild(list.lastChild);
list.removeChild(list.children[list.children.length-1]); // не работает в IE8
// или
list.removeChild(list.querySelector('li:last-child'));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2016, 22:42
Помогаю со студенческими работами здесь

HTML DOM как с использованием Javascript создать узлы DOM
Доброго времени суток. хочу через Javascript по событию onclick добавить в html документ что то вроде: &lt;div&gt;hello world&lt;/div&gt;...

Написать скрипт, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM
Написать скрипт на языке JavaScript, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM (объект document). ...

Удаление элементов вектора с использованием итератора в STL
Задача: создать программу, в которую пользователь может ввести свой список из 50 названий игр, а потом при желании удалить выбранную игру....

Удаление дочерних обьектов
Вот такая беда: Имеется: MoveClip с именем Pn2, в нем есть MoveClip с именем Fon То есть один дочерний объект в нем всегда...

Не работает безопасное завершение дочерних процессов с использованием CreateRemoteThread
Необходимо завершать процесс и все его дочерние процессы в программе на Microsoft Visual C++ Используется немного измененный код. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru