У меня есть следующий HTML:
<div class="ratings">
<h4>
<a href="https://www.horoscope.com/star-ratings/today/aquarius">
Sex
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled"></i>
<i class="icon-star-filled"></i>
</a>
</h4>
<h4>
<a href="https://www.horoscope.com/star-ratings/today/aquarius">
Hustle
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled"></i>
<i class="icon-star-filled"></i>
</a>
</h4>
<h4>
<a href="https://www.horoscope.com/star-ratings/today/aquarius">
Vibe
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled"></i>
<i class="icon-star-filled"></i>
</a>
</h4>
<h4>
<a href="https://www.horoscope.com/star-ratings/today/aquarius">
Success
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled highlight"></i>
<i class="icon-star-filled"></i>
<i class="icon-star-filled"></i>
<i class="icon-star-filled"></i>
</a>
</h4>
</div>
Я хочу получить с cheerio per h4 количество элементов с классом .highlight
.
Для этого я сделал следующее:
let $ = cheerio.load(response.data);
let zodiacRatings = $('.ratings>h4');
let ratings = [];
rawZodiacRatings.map((key, val) => {
let $ = cheerio.load(val);
ratings.push($('.highlight').length);
});
console.log(ratings);
Возвращает:
[ 3, 3, 3, 2 ]
что я и хочу.
Но я думаю, что есть лучший способ получить число .highlight
для каждого <h4>
. Я знаю, что могу использовать return $('.highlight').length
в карте (), но это дает мне больше информации, чем просто: [ 3, 3, 3, 2 ]
.