【问题标题】:If element contains string then replace it如果元素包含字符串,则替换它
【发布时间】:2016-04-09 07:44:58
【问题描述】:

我想重命名这些中的所有英文日名:

<td class="date" style="text-align: right !important;">2016-01-07 (Thu)</td>

这是我的 JS:

$(".date:contains('Mon'), .date:contains('Tue'), .date:contains('Wed'), .date:contains('Thu'), .date:contains('Fri'), .date:contains('Sat'), .date:contains('Sun')").html(function(i, text) {
    return text.replace(/Mon/g, 'H');
    return text.replace(/Tue/g, 'K');
    return text.replace(/Wed/g, 'Sz');
    return text.replace(/Thu/g, 'Cs');
    return text.replace(/Fri/g, 'P');
    return text.replace(/Sat/g, 'Szo');
    return text.replace(/Sun/g, 'V');
});

但它不会替换给定的文本。 有什么想法吗?

【问题讨论】:

    标签: jquery string text replace


    【解决方案1】:

    或者,您可以编写 7 个较小的函数,例如:

    $(".date:contains('Mon')).html(function(i, text) { return text.replace(/Mon/g, 'H'); });
    $(".date:contains('Tue')).html(function(i, text) { return text.replace(/Tue/g, 'K'); });
        ...
    

    【讨论】:

      【解决方案2】:

      执行将在第一个return 语句之后离开函数。相反,您需要链接 replace() 调用:

      $(".date:contains('Mon'), .date:contains('Tue'), .date:contains('Wed'), .date:contains('Thu'), .date:contains('Fri'), .date:contains('Sat'), .date:contains('Sun')").html(function(i, text) {
          return text.replace(/Mon/g, 'H')
              .replace(/Tue/g, 'K')
              .replace(/Wed/g, 'Sz')
              .replace(/Thu/g, 'Cs')
              .replace(/Fri/g, 'P')
              .replace(/Sat/g, 'Szo')
              .replace(/Sun/g, 'V');
      });
      

      Working example

      【讨论】:

      • 我太笨了……我忘了我只能退回一件事。不过感谢您的回答,它现在就像魔术一样!
      • 没问题,很乐意提供帮助。
      猜你喜欢
      • 2017-02-07
      • 2018-05-05
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      相关资源
      最近更新 更多