Проблема в следующем есть блок с текстом в ктором вложен еще 1 болк с текстом, при получении данных текст сливается в одну сплошную. Возможно ли пропустить вывод вложенного div блока с классовым именем text_block ? Или же можно как-то разделить данные ?
<div class="text_block_in">
<div class="text_block">Тут какой либо текст</div>Прочитать текст.</div>
При скрапе таким способом:
request("https://site.ru/news/", (err, res, html) => {
const htmlAll = cheerio.load(html);
htmlAll('.info_block_line').each((i, el) => {
const output = htmlAll(el)
.find('.text_block_in')
.text()
.replace(/\s\s+/g,'');
console.log(output);
});
});
На выходе получаю такой текст:
Тут какой либо текстПрочитать текст.
.text() выдает весь текст элемента, включая текст вложенных блоков.
Текст только самого элемента должен помочь выдать такой код
const output = htmlAll(el)
.find('.text_block_in')
.contents()
.filter(function(){
return this.nodeType === Node.TEXT_NODE;
})[0].nodeValue
На случай если на сервере это не сработает(т.к. клиентский код), есть более медленный вариант через jquery-like
htmlAll(el)
.find('.text_block_in')
.clone() //clone the element
.children() //select all the children
.remove() //remove all the children
.end() //again go back to selected element
.text();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В моём скрипте функция анимирует появление блока на странице путём увеличения его высотыАнимация реализована заменой класса элемента
Есть несколько компонентовОдин отвечает за дату, другие за время
Есть горизонтальный сайт который работает через slick и работает по блочноНужно чтобы, при скролле на следующий слайд запускалась анимация...