Нахождение элемента DOM с определенным текстом и его изменение

Я пытаюсь понять, как в необработанном javascript (без jQuery и т. д.) найти элемент с конкретным текстом и изменить этот текст.

Мое первое воплощение решения ... менее чем адекватно. В основном я сделал следующее:

var x = document.body.innerHTML;
x.replace(/regular-expression/,"text");
document.body.innerHTML = x;

Наивно я думал, что преуспел с честью, тем более что это было так просто. Затем я добавил изображение в свой пример и подумал, что могу проверять каждые 5 секунд (потому что эта строка может входить в DOM динамически) ... и изображение мерцало каждые 5 секунд.

Упс.

Итак, есть чтобы быть правильным способом сделать это. Способ, который специально выделяет конкретный элемент DOM и обновляет текстовую часть этого элемента DOM.

Теперь всегда существует подход «рекурсивно перебирать дочерние элементы, пока вы не найдете самого глубокого дочернего элемента со строкой», чего я хочу избежать. . И даже тогда я скептически отношусь к «замене innerHTML на что-то другое» - правильный способ обновить элемент DOM.

Итак, как правильно искать строку в DOM? И как правильно обновить текст элемента DOM?

12
задан gblazex 16 June 2011 в 12:58
поделиться