javascript - 通过 Jquery 仅替换网页上的文本

标签 javascript jquery

使用 Tampermonkey 我想反转 BBC 新闻网站上的文本(为什么?因为),显然这只是本地的。我已经写了一些东西来替换它的一部分,问题是访问页面上的所有文本。在 JQuery 中是否有一种有效的方法来做到这一点?

例如我有一个reverse()函数,给出:

<div>
  <a href="...">Text1</a>
  <span class="...">Text2</a>
  <fieldset>
    <legend>Text3</legend>

是否有某种方法可以定位 Text1、Text2 和 Text3 而无需触及其他任何内容?我可以写一些东西来在遍历 DOM 时显式检查 tagName 并希望有一个文本类型或类似的东西,但我想知道 JQuery 是否已经有一些东西可以做到这一点?

谢谢

最佳答案

向后退!

$('*').contents().filter(function() {
  return this.nodeType === 3;
}).each(function() {
  this.nodeValue = esrever.reverse(this.nodeValue);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/mathiasbynens/esrever/master/src/esrever.js"></script>
<div>
  <a href="...">Text1</a>
  <span class="...">Text2</a>
  <fieldset>
    <legend>Text3</legend>

关于javascript - 通过 Jquery 仅替换网页上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30500214/

相关文章:

javascript - 添加淡入淡出效果到悬停脚本上的 jQuery 图像替换

javascript - 计算 href 然后减去

c# - mvc Controller 返回 'html data' 而不是 View

javascript - 如何处理 react 中的异步功能?

php - 解析 JSON : unexpected character

javascript - 在 Redux 中 react 重新渲染

javascript - 在浏览器调整大小时带有可调整大小图像的页面

javascript - 第二个 td 在第一个 td + html 表之上

javascript - 如何区分刷新(按F5/刷新按钮)和关闭浏览器?

javascript - 如何在 iOS Safari 中获取触摸坐标