Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

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



"affix is ТЕКСТ КОТОРЫЙ НАДО СКАЧАТЬ"
дело в том, что див с текстом помимо самого текста содержит в себе другие дочерние элементы
но нужен только текст выделенный на скриншоте, без того, что содержится в его дочерних элементах
Голосование за лучший ответ
Данил Ласый Просветленный (32681) 3 месяца назад
На js и пиши. При чём тут HTML. В курсе, как скрипты пишутся на Js?
ltd reУченик (92) 3 месяца назад
если б я знал js, то, наверно, не лез бы сюда за помощью
Данил ЛасыйПросветленный (32681) 3 месяца назад
Понял. Я-то не буду. Удачи
454554 54545454 Гуру (3571) 3 месяца назад
Конечно, я помогу вам с написанием JavaScript скрипта, который будет искать и сохранять в массив весь текст со страницы, который начинается со слов "affix is", если прародительский элемент имеет атрибут atype="prefix".

Вот пример такого скрипта:
 // Функция для поиска и сохранения текста 
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 соответствует вашему описанию. Если у вас есть дополнительные требования или вопросы, пожалуйста, дайте знать!
Похожие вопросы