【问题标题】:JavaScript/jQuery: replace part of string?JavaScript/jQuery:替换部分字符串?
【发布时间】:2011-09-04 20:28:48
【问题描述】:

这样的文字:

<div class="element">
<span>N/A, Category</span>
</div>

我想摆脱N/A的每一次出现。

这是我的尝试:

$('.element span').each(function() {
        console.log($(this).text());
        $(this).text().replace('N/A, ', '');
    });

记录的文本是跨度内的文本,所以选择器没问题。

我在这里做错了什么?

【问题讨论】:

  • replace 返回一个字符串,它不会执行就地更改。即使这样,文本也会自动设置为元素。

标签: javascript jquery replace


【解决方案1】:

需要在replace调用后设置文本:

$('.element span').each(function() {
  console.log($(this).text());
  var text = $(this).text().replace('N/A, ', '');
  $(this).text(text);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="element">
  <span>N/A, Category</span>
</div>

这是另一种很酷的方法(帽子提示@Felix King):

$(".element span").text(function(index, text) {
    return text.replace("N/A, ", "");
});

【讨论】:

  • 或传函数:$(this).text(function(i, text) { return text.replace(...);});
  • @Felix:好电话,我总是忘记那个版本。
  • +1 表示第二个版本,支持@Felix 的答案之一,将其转给他 :)。
  • @bazmegakapa:哈哈,是的。我已经给@Felix 投了很多赞成票 :)
  • @Andrew 我想我们大多数人都有:)。
【解决方案2】:

应该是这样的

$(this).text($(this).text().replace('N/A, ', ''))

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2012-07-17
    • 2021-04-19
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多