Прошу привести пример, как c помощью JS найти на странице текст получить класс родительского объекта
На странице есть "искомый текст", на выходе должен быть объект (переменная) с классом "родительский элемент" пример кода в котором надо найти "искомый текст" Проблема в том, что классы генерируются динамически и искать по названию класса бессмысленно. Но текст (часть текста\слово) неизменны. Поэтому элементы необходимо получить именно отталкиваясь только от текста.
<div class="родительский элемент">
<div class="контейнер2">
<div class="контейнер3">
<p>искомый текст<p>
</div>
</div>
</div>
Ответы (1 шт):
чтобы получить просто текст из элемента можно воспользоваться свойства textContent или innerHTML:
let element = document.querySelector('.block3 p');
console.log(element.textContent);
console.log(element.innerHTML);
<div class="parent">
<div class="block2">
<div class="block3">
<p>искомый текст</p>
</div>
</div>
</div>
чтобы получить родительский элемент необходимо использовать свойство parentElement
console.log(element.parentElement);
Однако, если вы не знаете где находится (в каком блоке) соответствующий текст, то придется пройтись по всем блокам, заглядывать в их дочерние блоки (использовать querySelectorAll('*')) и искать текст описанным выше способом (использовать textContent)
let elements = document.querySelectorAll('*');
for (const element of elements) {
if (element.textContent.localeCompare('искомый текст') == 0) {
console.log("исходный элемент:", element)
console.log("родительский элемент:", element.parentElement)
}
}
<div class="parent">
<div class="block2">
<div class="block3">
<p>искомый текст</p>
</div>
</div>
</div>