Top.Mail.Ru
Ответы
Аватар пользователя
11мес
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите с написанием js скрипта

час мучал нейронку, но без знаний js не получилось добиться от нее рабочего кода. нейронка постоянно упускала некоторые мелочи
нужен скрипт, который будет искать и сохранять в массив весь текст со страницы, который начинается со слов "affix is", если прародительский элемент имеет атрибут atype="prefix"
вложенность выглядит следующим образом, продублирую на картинке

1234
 <div atype="prefix"> 
	<div class="label"> 
		<div> 
		  "affix is ТЕКСТ КОТОРЫЙ НАДО СКАЧАТЬ" 

дело в том, что див с текстом помимо самого текста содержит в себе другие дочерние элементы
но нужен только текст выделенный на скриншоте, без того, что содержится в его дочерних элементах

По дате
По рейтингу
Аватар пользователя
11мес

Конечно, я помогу вам с написанием JavaScript скрипта, который будет искать и сохранять в массив весь текст со страницы, который начинается со слов "affix is", если прародительский элемент имеет атрибут atype="prefix".

Вот пример такого скрипта:

1234567891011121314151617181920212223242526272829303132333435363738394041
 // Функция для поиска и сохранения текста 
function findAndSaveText() { 
    // Находим все элементы с атрибутом atype="prefix" 
    const prefixElements = document.querySelectorAll('[atype="prefix"]'); 
    const resultArray = []; 
 
    // Перебираем все найденные элементы 
    prefixElements.forEach(prefixElement => { 
        // Находим все дочерние элементы, содержащие текст "affix is" 
        const textNodes = findTextNodes(prefixElement); 
 
        // Перебираем все найденные текстовые узлы 
        textNodes.forEach(node => { 
            const text = node.nodeValue.trim(); 
            if (text.startsWith('affix is')) { 
                resultArray.push(text); 
            } 
        }); 
    }); 
 
    // Выводим результат в консоль 
    console.log(resultArray); 
} 
 
// Функция для поиска текстовых узлов в элементе 
function findTextNodes(element) { 
    const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false); 
    const textNodes = []; 
 
    let node; 
    while (node = walker.nextNode()) { 
        if (node.nodeValue.trim()) { 
            textNodes.push(node); 
        } 
    } 
 
    return textNodes; 
} 
 
// Запускаем функцию 
findAndSaveText(); 

Этот скрипт выполняет следующие действия:

Находит все элементы с атрибутом atype="prefix".
Использует TreeWalker для поиска всех текстовых узлов внутри этих элементов.
Проверяет, начинается ли текст с "affix is".
Если текст начинается с "affix is", он добавляется в массив.
Массив с найденными текстами выводится в консоль.
Этот скрипт должен работать корректно, если структура HTML соответствует вашему описанию. Если у вас есть дополнительные требования или вопросы, пожалуйста, дайте знать!

Аватар пользователя
Оракул
11мес

На js и пиши. При чём тут HTML. В курсе, как скрипты пишутся на Js?