【发布时间】:2011-09-02 04:33:05
【问题描述】:
我试图弄清楚如何在原始 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 元素文本的正确方法是什么?
【问题讨论】:
-
在使用
document.evaluate和 XPath 的有趣解决方案中,但不幸的是,这在 IE 中不起作用,我认为它没有实际意义:jsfiddle.net/GRmF5/6。还有一个实用函数使用textContent/innerText而不是innerHTML。
标签: javascript string search dom text