javascript - 用另一个字符串替换元素文本的子字符串

标签 javascript jquery

问题

我正在尝试使用 JavaScript 字符串 replace 方法来替换 div 中包含特定字符串的某些文本。但是,我的代码不会替换该 div 中的字符串。

Javascript

function john(){
  var NAME = "Johnny Buffet,";
  var val = $("div#like-list-").text();
  if ( val.indexOf(NAME) !== -1 ){
      val.replace(NAME, '');      
  }
}

最佳答案

它不起作用,因为 .replace()是一个字符串函数,不是一个 jQuery 函数; JavaScript 中的字符串是不可变的,因此 .replac() 返回修改后的字符串,然后您必须将其重新分配给您的元素。

也就是说,您可以使用 .text(fn)一步执行替换:

$("div#like-list-").text(function(i, val) {
    return val.replace(NAME, '');
});

顺便说一句,我也删除了 .indexOf() 条件,因为如果 NAME 没有出现在您的字符串中,.replace() 函数将只返回原始字符串。

关于javascript - 用另一个字符串替换元素文本的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18179917/

相关文章:

javascript - 在 <tr> 悬停时从数据库获取详细值

javascript - 跨浏览器 - 文本区域中的换行符

javascript - 方法自动生成

Jquery Datatable 总和条件页脚回调不显示正确的结果

javascript - 获取元素的 jQuery 选择器

javascript - 在 X 和 XX 之间在 JS 中应用循环

javascript - 为ajax post创建jquery数组

javascript - karma 中的 browserNoActivityTimeout 在哪里使用?

javascript - Uncaught ReferenceError : exports is not defined at polyfills. js:17

javascript - 从 Node-JS 聆听/关注 IBM Cloud Object Storage 中的变化