Как я могу удалить каждый класс в Safari только для определенного текста?
Я знаю, что этот скрипт ниже удалит все классы с именем:
sortable itemDescription
tell application "Safari Technology Preview" to ¬
do JavaScript ¬
"document.querySelectorAll(\"[class=\\\"sortable itemDescription\\\"]\").forEach(el => el.remove());" in current tab of window 1
Но могу ли я добавить оператор if, чтобы удалить класс только в том случае, если текст есть в этом примере:
"(unwanted") :
<td class = "sortable itemDescription">
(unwanted)
</td>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Лямбда в .forEach может быть расширена, чтобы включить дополнительное условие при выполнении удаления, чтобы проверить текст. Текстовое содержимое элемента можно получить с помощью .textContent. Поскольку вокруг фактического текста много пробелов, .trim() можно использовать для извлечения фактического текста для сравнения.
document.querySelectorAll("[class=\"sortable itemDescription\"]")
.forEach(el => {
if (el.textContent.trim() === "(unwanted)") {
el.remove();
}
});
AppleScript лишний для вопроса. Глядя только на JavaScript, текущий код в заданном вопросе выглядит следующим образом:
document.querySelectorAll("[class=\"sortable itemDescription\"]").forEach(el => el.remove());
Некоторое экранирование кавычек необходимо, чтобы вернуть решение в этом ответе в AppleScript:
tell application "Safari Technology Preview" to ¬
do JavaScript ¬
"document.querySelectorAll(\"[class=\\\"sortable itemDescription\\\"]\").forEach(el => { if (el.textContent.trim() === \"(unwanted)\") { el.remove(); } });" in current tab of window 1