问题
我正在尝试使用 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/