Вчера решал интересную задачу, нужно было найти и перебрать все текстовые узлы на страницы.
Время меня поджимало, поэтому я сделал это в лоб:
var all_elements = document.querySelectorAll('body *');
for (var n = 0; n < all_elements.length; n++) {
var all_nodes = all_elements[n].childNodes;
for (var i = 0; i < all_nodes.length; i++) {
if (all_nodes[i].nodeName === '#text') {
var node_text = all_nodes[i].nodeValue;
if (node_text.includes('мат')) {
console.log("Текстовый узел содержит мат:\n" + node_text + "\nОн будет удален.");
all_nodes[i].nodeValue = '***удалено защитой***';
}
}
}
}
Сегодня на свежую голову понимаю, что возможно это не самый оптимальный метод.
Как бы вы сами решили похожую задачу? Спасибо.