【发布时间】:2012-02-28 23:51:35
【问题描述】:
我正在尝试编写一个小书签,在文档上所有可见文本实例上调用函数doSomething(textNode)。
doSomething(),只是为了好玩,通过替换传入其中的 textNode 的 textContent 将每个单词替换为“derp”。但是,这会使一些为空的 textNode 中包含单词,因此会破坏网页。
有没有办法只在每个包含单词的 textNode 上调用 doSomething()?
function recurse(element)
{
if (element.childNodes.length > 0)
for (var i = 0; i < element.childNodes.length; i++)
recurse(element.childNodes[i]);
if (element.nodeType == Node.TEXT_NODE && element.nodeValue != '')
doSomething(element);
}
var html = document.getElementsByTagName('html')[0];
recurse(html);
【问题讨论】:
标签: javascript recursion bookmarklet textnode