我花了很长时间尝试和解决这个问题,但没有看到你看到的运气,因为我对 javascript 还很陌生。我正在制作一个 google chrome 扩展程序,我希望阻止用户定义的页面上的某些单词,但我希望在没有 getelementbyid 的情况下执行此操作,因为他们不会有我想要的 id 的网页。例如,让用户输入他或她希望阻止的词,然后这些词将在他们访问的任何网页上被替换。帮助很大。到目前为止,我所拥有的只是通过 id 而不是标签获取元素
问问题
529 次
3 回答
1
文本可以在任何元素中,所以getElementsByTagName
不会有太大用处。
相反,请考虑遍历所有节点。查找类型 3 的节点(文本节点),并替换它们的内容。
从 开始document.body
,获取它的.children[]
,然后递归循环。
于 2013-01-06T07:15:49.863 回答
0
这是一个工作示例:http: //jsfiddle.net/cmontgomery/V45LS/
秘制酱料:
soapInTheMouth = function(node) {
var allNodes = node.childNodes;
$.each(allNodes, function(i,n) {
if(n.nodeType === 3) {
n.nodeValue = n.textContent.replace(/shit/g,'crap');
} else {
soapInTheMouth(n);
}
});
}
于 2013-01-06T08:19:14.583 回答
0
谢谢你们,但我代表我修复了它只是一个语法错误
于 2013-08-20T07:43:41.713 回答