0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34

Не находится элемент на странице

25.06.2025, 22:20. Показов 2194. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Ситуация такая: на странице есть кнопка, по нажатию на которую в html добавляется несколько новых тегов span с текстом (теги появляются, я проверял). Потом делаю поиск тегов span
let elem = document.querySelectorAll('span');

Старые теги находит, а новые нет. Что за фигня?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2025, 22:20
Ответы с готовыми решениями:

Как из формы которая находится на странице которая грузилась первой передать информацию на вторую страницу?
По ходу работы с документом, в один фрэйм у меня грузется сначало первая страница, потом заместно...

Нужно выделить пункт меню, на странице которого пользователь находится в данный момент
Добрый день, CSS и HTML более менее выучила, а в JS пока нет желания лезть, вот ищу готовые...

Вызов в html-странице Vue, который находится в отдельном файле
Здравствуйте! Гуглю, гуглю, но так и не могу найти хорошее объяснение на вопрос, как банально имея...

36
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
03.07.2025, 18:47  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от krvsa Посмотреть сообщение
начит на момент твоего запроса их просто нет в ДОМ.
Естественно. Что делать то?
0
 Аватар для voraa
1299 / 1288 / 191
Регистрация: 21.01.2024
Сообщений: 5,978
03.07.2025, 18:51
Лучший ответ Сообщение было отмечено Дмитрий2003 как решение

Решение

Цитата Сообщение от Дмитрий2003 Посмотреть сообщение
Естественно. Что делать то?
Ставить MutationObserver.
https://developer.mozilla.org/... onObserver
Следить, когда они появятся и только после этого делать все остальное.
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
03.07.2025, 18:54  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Значит на момент твоего запроса их просто нет в ДОМ.
Так и есть. Что делать с этим?
0
Заблокирован
03.07.2025, 19:17
Цитата Сообщение от Дмитрий2003 Посмотреть сообщение
Что делать то?
Это я тебе в самом начале сказал, что делать.
Не находится элемент на странице
0
 Аватар для voraa
1299 / 1288 / 191
Регистрация: 21.01.2024
Сообщений: 5,978
03.07.2025, 19:29
Цитата Сообщение от black1385 Посмотреть сообщение
если динамически создаешь элементы, то потом так же динамически создавай JS, который будет эти элементы находить.
И как динамически создать скрипт после вставки элементов, если сначала надо определить в какой момент они вставляются?
0
Заблокирован
03.07.2025, 19:32
Цитата Сообщение от voraa Посмотреть сообщение
И как динамически создать скрипт после вставки элементов, если сначала надо определить в какой момент они вставляются?
После. Вначале вставка элементов. Потом создание js-скрипта. Пусть просто вставит мой код в консоль браузера и проверит. Увидит ли он новые элементы?
0
 Аватар для voraa
1299 / 1288 / 191
Регистрация: 21.01.2024
Сообщений: 5,978
03.07.2025, 19:34
Цитата Сообщение от black1385 Посмотреть сообщение
После. Вначале вставка элементов. Потом создание js-скрипта.
Всю тему прочитать не дано? Всего то меньше 2 страниц
Цитата Сообщение от Дмитрий2003 Посмотреть сообщение
Я наверное не очень хорошо объяснил. Сайт не мой, я много с ним работаю и чтобы облегчить работу использую расширение браузера tampermonkey. Расширение внедряет на страницу мой собственный скрипт. Работает скрипт так: на странице создается кнопка, по нажатию на которой раскрывается список шаблонов, требуется кликнуть на определенном элементе списка. Списка изначально на странице нет, выводится скриптом. Кнопка работает, список раскрывается. Но дальше ничего не работает,....
Понял?
Какой то код, в который лезть нет никакой возможности вставляет в DOM элементы. И потом их надо находить. Т.е. надо поймать момент, когда этот неведомый код вставит элементы.
И зачем потом "динамически" создавать скрипт - никому, кроме тебя, непонятно. Потом достаточно вызвать функцию из скрипта, который создан в любое время раньше
0
Заблокирован
03.07.2025, 19:45
Цитата Сообщение от voraa Посмотреть сообщение
Понял?
Да хрень какая-то. Хоть сто раз почитаю, всё равно не пойму зачем это) Он же нашел возможность вставлять эти элементы на чужой сайт. Пусть найдет такую же возможность вставлять JS.
0
 Аватар для voraa
1299 / 1288 / 191
Регистрация: 21.01.2024
Сообщений: 5,978
03.07.2025, 19:58
Цитата Сообщение от black1385 Посмотреть сообщение
Он же нашел возможность вставлять эти элементы на чужой сайт. Пусть найдет такую же возможность вставлять JS.
Так расширения для того и делают, что бы работать с чужими сайтами. И вставлять скрипт после чего то не надо. После чего то надо просто вызвать свою функцию. Но сначала определить момент, когда нужные элементы появляются на сайте. Обычно такие вещи делаются с помощью MutationObserver.

Добавлено через 6 минут
Дмитрий2003,
Еще раз.
openTamplace - твоя функция? Что она делает? Она синхронная или асинхронная?
Если она асинхронная, то надо дожидаться, когда она завершит работу промисами или через async/await.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3862 / 1763 / 434
Регистрация: 14.03.2022
Сообщений: 4,454
04.07.2025, 08:55
Цитата Сообщение от black1385 Посмотреть сообщение
Вначале вставка элементов. Потом создание js-скрипта.
Ты все продолжаешь продвигать свою ахинею...
Сделать скрипт, который потом добавит другой скрипт. Это капец какое решение.
И самое главное не решена проблема "как узнать, что элементы уже появились"...
0
Заблокирован
04.07.2025, 09:26
krvsa, надо дождаться когда ТС всё-таки найдет правильное решение и вот потом посмотрим. Твои ответы также можно назвать ахинеей, потому что они тоже не работают по данному вопросу
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3862 / 1763 / 434
Регистрация: 14.03.2022
Сообщений: 4,454
04.07.2025, 10:12
black1385, ответ ТСу уже дан выше...
Цитата Сообщение от voraa Посмотреть сообщение
Ставить MutationObserver.
https://developer.mozilla.org/... onObserver
Следить, когда они появятся и только после этого делать все остальное.
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
06.07.2025, 21:36  [ТС]
MutationObserver сработал, но почему-то не сработал код:
JavaScript
1
2
3
4
5
 let btn = findElementByTagAndText('span', 'Нажать').parentNode.parentNode;
 
console.log("btn " + btn .outerHTML); // btn <button class="styled__ButtonStyled-sc-1ksaaok-5 eNmfJv uikit-button" disabled=""><div class="styled__Loading-sc-1ksaaok-0 hEVLTm uikit-button_loading"></div><div class="styled__ButtonContent-sc-1ksaaok-1 gKuoyW uikit-button_content"><span class="uikit-button_label">Нажать</span></div></button>
 
btn.click(); // никакой реакции
0
 Аватар для voraa
1299 / 1288 / 191
Регистрация: 21.01.2024
Сообщений: 5,978
06.07.2025, 21:51
В девтулсе смотреть какие обработчики установлены на эту кнопку.
Смотреть по коду обработчиков не проверяют ли они истинное нажатие от программного.
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
06.07.2025, 21:54  [ТС]
А что толку смотреть? Я ведь не могу изменить код обработчиков.
0
 Аватар для voraa
1299 / 1288 / 191
Регистрация: 21.01.2024
Сообщений: 5,978
06.07.2025, 22:00
Цитата Сообщение от Дмитрий2003 Посмотреть сообщение
А что толку смотреть?
Смотреть всегда есть толк. Потому, что м.б. дело совсем не в этом (на самом деле такие проверки обычно вызваны бывают сильной паранойей и встречаются не часто). Просто ткнуть там точку останова и тупо смотреть, что происходит.
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
06.07.2025, 23:02  [ТС]
Я плохо разбираюсь в JavaScript. Не смогу понять что там происходит. Ладно, вам спасибо за помощь, на этом закончим.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2025, 23:02

Нужно сделать кнопку на СВОЕЙ странице с урлом взятой с кнопки на ЧУЖОЙ странице
Мне нужно сделать кнопку на СВОЕЙ странице с урлом взятой с кнопки на ЧУЖОЙ странице... Урл кнопки...

С помощью таймера отобразить на странице текущее время, день недели и дату на странице
Здравствуйте. Я начинающий помогите пожалуйста с заданием. Буду признателен. С помощью таймера...

Необходимо создать три кнопки во внутренней странице (во 2о странице)
VK Mini Apps (&quot;web&quot;) на React. Есть страница. На странице 5 активных кнопок (Тренировки,...

Надо удалить со страницы контрол, который находится внутри формы
Надо удалить со страницы контрол, который находится внутри формы var frm; //Переменная формы var...

Где может находится JavaScript функция, указанная в HTML коде страницы?
Всем привет. Сам я из смежной темы: 1С. Пишу парсер под 1с . В HTML, JavaScript, мягко говоря...


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

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

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru