Лямбда в пределах .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