js获取网页当中body里所有标签里面的指定汉字并进行批量替换
js获取网页当中body里所有标签里面的指定汉字并进行批量替换,不获取标签属性只获取标签里的所指定汉字内容并批量替换成空白或者自定义汉字。大神该怎么写呀网上有好多办法就是...
js获取网页当中body里所有标签里面的指定汉字并进行批量替换,不获取标签属性 只获取标签里的所指定汉字内容并批量替换成空白或者自定义汉字。
大神该怎么写呀 网上有好多办法 就是在body标签里 加id 但是有好多页面呢 加id肯定不行呀、、、 展开
大神该怎么写呀 网上有好多办法 就是在body标签里 加id 但是有好多页面呢 加id肯定不行呀、、、 展开
1个回答
展开全部
我写了代码如下, 测试可行, 供参考:
//主要靠这个函数实现: 将body下的文本节点中的searchWord, 替换为replaceWord
function replaceBodyText(searchWord, replaceWord){
var reg = new RegExp(searchWord, 'g');
function replaceNode(node){
node.childNodes.forEach(function(v){
if(v.nodeName === 'SCRIPT')
return; //排除<script>标签
if(!v.hasChildNodes()){
if(reg.test(v.textContent))
v.textContent = v.textContent.replace(reg, replaceWord);
return;
}
replaceNode(v);
});
}
replaceNode(document.body);
}
//绑定一个事件测试用, 点击这个按钮后才会执行;
document.querySelector('#testBtn').addEventListener('click', function(){
replaceBodyText('中国', '美国');
});
//实际使用中直接调用函数即可:
//以下语句表示将所有文本节点中的"中国"替换为"美国:
//replaceBodyText('中国', '美国');
更多追问追答
追答
你将"//绑定一个事件测试用"后的内容全部删掉, 这是我的举例说明使用方法, 你的页面没这个按钮, 你放在那里不起作用的.
也就是将你的代码从第43行开始的内容删掉, 自己写上replaceBodyText('我', '你'); 有多少个写多少个. 这样你的网页一打开, 就是替换后的效果.
或者通过循环语句简化, 例如:
[['我', '你'],['好', '不好'], ['他','你'],['女','男']].forEach(function(item){
replaceBodyText(item[0], item[1]);
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询