Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565

Удаляются данные из переменной querySelectorAll

02.11.2018, 12:32. Показов 835. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Я уже обращался с этой проблемой, но мне не отвечают в старой теме.
Вопрос тот же. Сохраняю данные в переменную, потом когда удаляю из дерева, чистится и переменная.
Как сделать так, чтобы удаление где бы то нибыло, не затрагивало переменную.

JavaScript
1
2
3
4
5
6
7
//cut out tr elements from tbody
    var trElements = document.getElementById("tableWrapper").querySelectorAll("tbody")[0];
    
    //clear tbody table
    var tbodyChildren = document.getElementById("tableWrapper").getElementsByTagName("tbody")[0].getElementsByTagName("tr");
    for(var i = tbodyChildren.length - 1; i > 0; i--)
        tbodyChildren[i].remove();
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2018, 12:32
Ответы с готовыми решениями:

Удаляются данные из переменной
Привет всем. Я вообще не понимаю почему это так работает... у меня есть переменная куда я сохраняю tr элементы var trElements =...

Удаляются данные с флэшки
В общем вставляю флэшку в пк,создаётся куча ярлыков данные еще остаются,через секунд 30 всё удаляется,повторюсь удаляется,не...

Удаляются данные из колонки
Здравствуйте. Достался сервер. Есть таблица с полями id, path, ident. Данными наполняется эта таблица через web-приложение. Проблема...

9
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
02.11.2018, 13:55
Опять же обращаю ваше внимание на то, что методы getElement(s)By - "живые".
Вы получили коллекцию элементов в переменную tbodyChildren с помощью этих методов. Затем в цикле удалили все эти элементы из DOM, соответственно в переменной у вас ничего нет.
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
02.11.2018, 14:14  [ТС]
Цитата Сообщение от AlexZaw Посмотреть сообщение
Опять же обращаю ваше внимание на то, что методы getElement(s)By - "живые".
Вы получили коллекцию элементов в переменную tbodyChildren с помощью этих методов. Затем в цикле удалили все эти элементы из DOM, соответственно в переменной у вас ничего нет.
Надо было сразу сказать про cloneNode(true);. А не обьяснять почему они живые или нет.
0
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
02.11.2018, 15:22
Цитата Сообщение от Bring Посмотреть сообщение
Надо было сразу сказать про cloneNode(true);. А не обьяснять почему они живые или нет.
Хм, во-первых, в вашем коде ни в одной из тем (по данной проблеме) нигде нет упоминания о "cloneNode", а, во-вторых, даже если и был бы, то что бы это изменило? Эти методы постоянно следят за обновлением DOM, и как только там что-то появляется или исчезает - они обновляют содержимое переменной. Об этом я вам и пытаюсь втолковать. Если вы этого не понимаете - не стоит винить других. Вы пришли сюда за помощью, и никто вам ничем не обязан. Удачи в обучении...
1
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
02.11.2018, 17:14  [ТС]
Цитата Сообщение от AlexZaw Посмотреть сообщение
Эти методы постоянно следят за обновлением DOM
cloneNode решил мою проблему
0
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2380 / 1740 / 677
Регистрация: 07.08.2016
Сообщений: 4,094
02.11.2018, 18:01
Каким образом? Что за костыль вы там придумали? Вся ваша проблема, даже при использовании getElement решается простым способом:
var tbodyChildren = trElements.querySelectorAll("tr");
1
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
02.11.2018, 23:59
Цитата Сообщение от Bring Посмотреть сообщение
cloneNode решил мою проблему
Вашу проблему решит знакомство с селекторами, чтобы не писать километровые конструкции вроде
JavaScript
1
var tbodyChildren = document.getElementById("tableWrapper").getElementsByTagName("tbody")[0].getElementsByTagName("tr");
вместо простых лаконичных
JavaScript
1
var tbodyChildren = document.querySelectorAll("#tableWrapper tbody tr");
И да, как сказано выше, при использовании querySelectorAll документ не удаляется из коллекции
1
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
05.11.2018, 18:19  [ТС]
Цитата Сообщение от renat_dmitriev Посмотреть сообщение
документ не удаляется из коллекции
у меня переменная чистилась динамически вместе с содержимым откуда было скопировано
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
07.11.2018, 23:47
Bring, вы не привели ни конкретного минимального примера, в котором наблюдается ваш "баг", ни конкретных ожидаемых результатов работы кода (который работает с DOM, но разметки тут не наблюдается), которые работают как вам кажется не так, как вы хотели. На какой ответ вы рассчитывали?
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
08.11.2018, 16:40  [ТС]
Цитата Сообщение от j2FunOnly Посмотреть сообщение
вы не привели ни конкретного минимального примера
Чтобы привести вам минимальный пример, мне придется сейчас изменить код назад, чего мне очень не хочется. Так что просто поверьте на слово, что querySelectorAll помог в одном случае, но не помог в другом. Ответ на свой вопрос я нашел. Но и предыдущие меня устроили.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2018, 16:40
Помогаю со студенческими работами здесь

Не удаляются почему-то данные
Здравствуйте. Такой вопрос. Вот есть у меня List<Man>, у myclass есть свойство DateTime dt. Надо мне оставить в списке только те...

Удаляются данные из Access
При добавление данных в бд сохраняется на некоторое время а потом удаляется что не так?

GridView не удаляются данные
Не могу понять где ошибка, не удаляются данные с БД редактирование происходит нормально а удаление нет У GridView Включил...

Удаляются данные массива. Python
У меня есть код в котором возникла проблема с использованием массива. Вот мини версия этого кода: # -*- coding: utf-8 -*- def...

Не удаляются данные из структуры в файле
Функция udalenie работает некорректно #include<stdio.h> #include<iostream> #include<conio.h> #include<string.h> ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru