Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
2 / 2 / 1
Регистрация: 07.09.2018
Сообщений: 11

Переписать цикл while на for

21.04.2021, 08:21. Показов 2612. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня маленькая проблема. Не получаеться корректно переписать этот цикл на другой. Чтобы он работал правильно. Сейчас этот цикл работает не особо то и нормально. Я просто прохожу по всем lastChild начиная с последнего элемента и в конце у меня есть некий id который мне не нужно удалять. А остальные элементы нужно. И на последней итерации выхожу. Нужно сделать так чтобы цикл работал не в зависимости от порядка элементов, а реально проверял.

Вот мой цикл. lastChild - это объект и свойство
JavaScript
1
length
у него не работает

JavaScript
1
2
3
4
5
6
while (this.lastChild) {
      if (this.lastChild.id === 'someId') {
        break
      }
      this.removeChild(this.lastChild);
    }

Мне нужен идентичный for только что-то наподобие этого:

Вместо break мне нужно continue

JavaScript
1
2
3
4
5
6
for (var i = 0; this.lastChild; i++) {
      if (this.lastChild.id === 'someId') {
        continue 
      }
      this.removeChild(this.lastChild);
    }
Зарание спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2021, 08:21
Ответы с готовыми решениями:

Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот цикл в цикл while
Пожалуйста помогите с задачами 1.Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот...

Переписать цикл с php на js
Здравствуйте! Пишу парсер, в общем все идет как надо, но столкнулся с проблемой, а именно: так как я пишу на php то весь процесс...

Переписать цикл for через while
Помогите пожалуйста!!! Переписать цикл for через while : а) с положительным шагом б) с отрицательным шагом

7
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
21.04.2021, 08:31
Здравствуйте.
sonicboss, напишите примерную HTML-разметку.
И нормально по смыслу объясните, что конкретно надо с этой разметкой сделать. Что удалять, что не удалять. Глядя на HTML-разметку.
0
2 / 2 / 1
Регистрация: 07.09.2018
Сообщений: 11
21.04.2021, 08:49  [ТС]
amr-now, нужно удалить все lastChild у которых id не равно ='someId'

someId это id текстового элемента (например h1) верстка очень запутанная и много элементов. Не будет смысла скидывать. Только сложность добавиться.

Например есть пустая страница, на ней кнопочки, блоки и текстовое сообщение. Так вот все элементы входят в lastChild

И если я напишу так:

JavaScript
1
2
3
4
while (this.lastChild) {
  
      this.removeChild(this.lastChild);
    }
То удаляться все элементы. Мне нужно удалить все, кроме someId.
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
21.04.2021, 08:51
Цитата Сообщение от sonicboss Посмотреть сообщение
Например есть пустая страница, на ней кнопочки, блоки и текстовое сообщение. Так вот все элементы входят в lastChild
Отдельно напишите простую разметку.
while (this.lastChild) - это удаление всех узлов внутри указанного элемента.
Покажите простую разметку и что конкретно делать.
0
2 / 2 / 1
Регистрация: 07.09.2018
Сообщений: 11
21.04.2021, 09:04  [ТС]
Там разметки на 500 строк. И все динамически генерируется. Не получиться. Но спасибо за это while (this.lastChild) - это удаление всех узлов внутри указанного элемента. теперь хоть знаю в каком направлении думать :З
0
123 / 98 / 15
Регистрация: 02.02.2014
Сообщений: 346
21.04.2021, 09:12
Ничё не понял. а может проще составить другой запрос?
JavaScript
1
document.querySelectorAll('нужный селектор [id!="some_id"]:last-child')
0
2 / 2 / 1
Регистрация: 07.09.2018
Сообщений: 11
21.04.2021, 09:32  [ТС]
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Слава интернету я нашел ответ

JavaScript
1
2
3
4
5
const parent = this;
    const keepElem = document.querySelector('#someId');
 
    [...parent.children]
        .forEach(child => child !== keepElem ? parent.removeChild(child) : null);
Мимо джавист которого заставили писать на js. Извините если ввел в заблуждение, может будет полезно для кого-то.
1
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
21.04.2021, 11:58
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Более современный вариант с for..of:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <div id="parent">
        <div>1</div>
        <div>2</div>
        <div id="someId">someId</div>
        <div>4</div>
        <div>5</div>
    </div>
    <script>
        document.getElementById('parent').onclick = f;
 
        function f() {
            let keepElem = document.getElementById('someId');
            for (let child of [...this.children])
                if (child !== keepElem) child.remove();
        }
    </script>
</body>
</html>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2021, 11:58
Помогаю со студенческими работами здесь

Переписать цикл под Do While
Доброе время суток!!! есть вот такой код static void Main(string args) { string b = &quot;&quot;; ...

Переписать цикл For-Next в While-Wend
Помогите переделать цикл: FOR i = 1 TO 10 FOR j = 1 TO 10...

Переписать программу, используя цикл for
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; void main() { int c; clrscr(); while ((c = getchar()) != EOF) putchar(c); ...

Цикл на Delphi переписать на ассемблер
не подскажете как вот этот код переписать на ассемблер? for i:= 0 to 11 do begin _y_temp:= 100; end;

Переписать программу, используя цикл Do.While
Добрый вечер! Как данную программу можно изменить, используя цикл Do..While? #include &quot;stdafx.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru