Код: Выделить всё
document.querySelectorAll('td > div:first-child').forEach(div => {
const descriptor = div.textContent.trim().toLowerCase();
if (['scary', 'disturbing', 'macabre'].includes(descriptor)) {
const tr = div.closest('tr');
if (tr) {
console.log('remove', tr.innerHTML)
tr.remove(); // this works!
}
}
});
document.querySelectorAll('tr').forEach(tr => {
const text = tr.textContent.replace(/\s|\u200B|\u00A0/g, '');
if (text === '' && tr.offsetHeight > 30) {
console.log('remove empty',tr.innerHTML)
tr.remove(); // this *doesn't* work reliably
}
});< /code>
td {
border: 1px solid black
}< /code>
macabre
Вторая часть предназначена для очистки оставшихся призрачных рядов - визуально высокий tr без содержания - но они все еще появляются. Я пытался использовать .TextContent , .innerText и разные пороговые значения высоты. Я также подтвердил в Devtools, что оставшиеся строки действительно являются tr s, иногда просто содержащие nbsp; .
< /code>
Как я могу надежно обнаружить и удалить эти «призрачные» ряды? < /p>
Подробнее здесь: https://stackoverflow.com/questions/795 ... le-content
Мобильная версия