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

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

21.04.2021, 08:21. Показов 2602. Ответов 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
6496 / 3907 / 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
6496 / 3907 / 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
6496 / 3907 / 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru