Игнорирование элементов с одинаковым тегом, но с разными классами

<td><center><span class="image"><img src=""></span></center></td>
<td><center>test</center></td>
<td><center>test2</center></td>

Существует такая страничка. Три строчки с одинаковым тегом td. Каким способ можно текст строчек занести в массив, при этом, чтобы строчка с классом "image" пропускалась?

Мой код:

var $ = cheerio.load(body);

            const player = [];

            $('td').each(function(i, elem) {
                player[i] = $(this).text()
              });

Вывод: ['', 'test', 'test2']


Ответы (1 шт):

Автор решения: nörbörnën
const cheerio = require('cheerio');

const body = `<html><body><table><tr>
<td><center><span class="image"><img src=""></span></center></td>
<td><center>test</center></td>
<td><center>test2</center></td>
</tr></table></body></html>`;

const $ = cheerio.load(body);

const player = [];

$('td:not(:has(.image))').each(function (i, elem) {
    player[i] = $(this).text()
});

console.log(player)
→ Ссылка