Как с помощью Violentmonkey удалить элементы со страницы содержащих определенных текст

Рейтинг: 0Ответов: 1Опубликовано: 27.02.2023

с js не дружу, но надо со страницы удалить элементы с попомщью Violentmonkey, есть примерно такая страница:

<html>
<head></head>
<body>
<div class="content-area">

    <div class="shorts">
        <div class="item">
            <div class="desc">
                <p class="name">Это удалить</p>
            </div>
        </div>
    </div>
    <div class="item">
        <div class="desc">
            <p class="name">Это оставить</p>
        </div>
    </div>
</div>
<div class="item">
    <div class="desc">
        <p class="name">И это удалить</p>
    </div>
</div>
</div>
</div>
</div>
</body>
</html>

Как полностью удалить divы содержащие текст "Это удалить" и "И это удалить"? Гугление не помогло, то, что нашел не удалось применить в данном примере

Ответы

▲ 0

Возможное решение вашего вопроса.

document.querySelectorAll('.name').forEach(el => {
    if (el.textContent.toLowerCase().indexOf('это удалить') >= 0 || el.textContent.toLowerCase().indexOf('и это удалить') >= 0) {
        for (item of el.childNodes) {
            if(item.nodeName === '#text') {
                item.textContent = '';
            }
        }
    }
})
    <div class="content-area">
        <div class="shorts">
            <div class="item">
                <div class="desc">
                    <p class="name"><span class="add">100</span><span class="to">some</span>это удалить<span class="add">100</span><span class="to">some</span></p>
                </div>
            </div>
            <div class="item">
                <div class="desc">
                    <p class="name">Это оставить<span class="add">100</span><span class="to">some</span></p>
                </div>
            </div>
            <div class="item">
                <div class="desc">
                    <p class="name">И это удалить<span class="add">100</span><span class="to">some</span></p>
                </div>
            </div>
        </div>
    </div>