使用javascript查找和替换HTML文本

时间:2016-06-08 16:42:49

标签: javascript html

使用WYSIWYG类型的网页创建器链接到各种数据库,从客户端服务器获取信息。

一个变量用于频率,有三个可能的输出,MO,YR或空白。

这是我的一个地方的HTML(这可以多次显示,只需用下一个数字切换1)

<span style="font-size:24px;"><strong>$@@1_Price</strong></span><span style="font-size:18px;" class="rateFrequency">@@1_rateFrequency</span>

我希望使用javascript将MO或YR替换为/月和/年,并在填空时不执行任何操作。

javascript知识不多,所以不知道从哪里开始。正在思考这方面的事情,但不确定我是朝着正确的方向前进还是从这里前进的地方

<script>
  window.onload=function change() {
      var frequency = document.getElementsByClassName("rateFrequency");
      if (condition1) {
          block of code to be executed if condition1 is true
      } else if (condition2) {
          block of code to be executed if the condition1 is false and condition2 is true
      } else {
          block of code to be executed if the condition1 is false and condition2 is false
      }
  }
change();
</script>

任何可以帮助我前进的事情都会很棒。谢谢!

2 个答案:

答案 0 :(得分:2)

假设我已正确理解您的要求,无论HTML文档中有多少“rateFrequency”跨度,以下代码都可以解决问题。

window.onload = function(e) {

  function changeFreq() {
    var els = document.getElementsByClassName("rateFrequency"),
    len = els.length;
    while (len--){
      els.item(len).innerText = els.item(len).innerText.replace('MO', '/month').replace('YR', '/year');
    }
  }

  changeFreq();
};

此处不需要if。如果跨度中包含的文本是“MO”,则第一个replace将用'/ month'替换它,第二个替换将不会执行任何操作。如果范围中包含的文字为“YR”,则第一个replace将不会执行任何操作,第二个replace将替换为“/年”。如果跨度中的文本不是“MO”或“YR”,则replace都不会执行任何操作,并且跨度中的文本将保持不变。

答案 1 :(得分:-1)

我已经让codepen让你看看。它使用jquery,我建议你使用它,因为它太棒了!

如果您有疑问,请告诉我: Example

$(document).ready(function(){
 $.each($('.rateFrequency'),function(){
    frq = $(this).text();
    if (frq=='MO'){
     console.log('REPLACE MONTH');
     $(this).text('/month');
    }else if(frq=='YR'){
     console.log('REPLACE YEAR');
      $(this).text('/year');
    }
  }) 
})