Jquery查找文本并替换(全部)

jquery find text and replace (all)

本文关键字:全部 替换 查找 文本 Jquery      更新时间:2023-09-26
<div id="id1">
   apple
   ball
   dogsss
   dogsssdogsss
   dogsssdogsssdogsss
</div>

如何使用jquery更改所有dogsssdollsss ?

这里是一个代码,但如何确定元素?

$('#id1 how???').each(function() {
    var text = $(this).text();
    $(this).text(text.replace('dog', 'doll')); 
});

这里是类似的问题http://stackoverflow.com/questions/8146648/jquery-find-text-and-replace

您的replace将只从字符串中删除第一个出现。使用regex和replace来删除所有的出现。使用全局标志regex中的g来替换所有出现的

改变
$(this).text(text.replace('dog', 'doll')); 

$(this).text(text.replace(/dog/g, 'doll')); 

也可以使用text() with callback来更新元素的innerText

$('#id1').text(function(i, oldText) {
  return oldText.replace(/dog/g, 'doll');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="id1">
  apple ball dogsss dogsssdogsss dogsssdogsssdogsss
</div>

您可以使用.text与回调,并使用regex与/g修饰符

$('#id1').text(function(index, text) {
    return text.replace(/dog/g, 'doll'); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="id1">
   apple
   ball
   dogsss
   dogsss
   dogsss
</div>

不使用replace(),使用split()join(),它们将替换所有出现的内容,而不仅仅是第一个:

$('#id1').each(function() {
    var text = $(this).text();
    $(this).text(text.split("dog").join("doll")); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="id1">
   apple
   ball
   dogsss
   dogsss
   dogsss
</div>

您应该在正则表达式中使用'/g'表示全局。否则,只替换第一个匹配项。

$(this).text(text.replace(/dog/g, 'doll')); 

就这样:

$('#id1').text(function(index, oldText) {
  return oldText.replace(/dog/g, 'doll');
})
// or not use a function
// $('#id1').text($('#id1').text().replace(/dog/g, 'doll'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="id1">
  apple ball dogsss dogsssdogsss dogsssdogsssdogsss
</div>