使用jQuery在整个网站中搜索和替换字符串?

时间:2018-05-30 17:33:40

标签: javascript jquery html

我目前正在努力探索在整个网站中查找和替换某个字符串的最佳解决方案。这是一个非常大的(WordPress)网站,所以手动替换的东西是不可能的。

基本上,我的客户已经营业约65年,在整个网站上据说他们已经“经营了60多年”。而不是说这个,我希望它能自动获得他们经营的年数,并将“60多年”替换为“*年营业*年”。

我编写了这个简单的jQuery代码,我知道这些代码可以计算出他们在当年的业务年份以及它们是在1953年建立的。

var yearsActive = (new Date()).getFullYear() - 1953;

我做了一些关于使用jQuery进行搜索和替换的研究,根据我的理解,不建议这样做?它是否正确?有没有人对我如何解决这个问题有任何想法?

编辑: 我可能应该提到我确实有一个我正在考虑临时的解决方案,正如我提到的那样,我正在阅读这样的解决方案可能并不理想。

$(document).ready(function() {
    var yearsAct = (new Date()).getFullYear() - 1953;
    var yearsActStr = yearsAct + " years";

    var replaced = $('body').html().replace(/over 60 years/g, yearsActStr);
    $('body').html(replaced);
});

1 个答案:

答案 0 :(得分:0)

可能重复:

Replace text in HTML page with jQuery

如果你想要一个香草解决方案 - 回复中的博客文章会给你一个。

懒惰的链接:http://blog.alexanderdickson.com/javascript-replacing-text

---基于评论的编辑---

你可以试试这个:

  $('body :not(script)').contents().filter(function() {
    return this.nodeType === 3;
  }).replaceWith(function() {
      return this.nodeValue.replace('old-date-year','DD/MM/YYYY');
  });

(测试并使用基本HTML元素 - 您需要运行更深入的测试。还要考虑在某种文档加载强制例程中运行它 - 如果您使用的是Ajax - 在所有Ajax例程完成后运行。)