Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
5 / 5 / 3
Регистрация: 13.03.2010
Сообщений: 276

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

22.01.2016, 10:22. Показов 966. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru