当前位置: 代码迷 >> JavaScript >> jQuery查找文本并替换(全部)
  详细解决方案

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

热度:61   发布时间:2023-06-06 08:55:44.0
<div id="id1">

   apple

   ball

   dogsss

   dogsssdogsss

   dogsssdogsssdogsss

</div>

如何使用jquery将ALL dogsss更改为dollsss

这是代码,但是如何确定元素呢?

$('#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')); 

另外,您可以将与回调一起使用以更新element的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> 

您可以将与回调一起使用,并将regex与修饰符一起使用

 $('#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> 

而已:

 $('#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> 

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

$(this).text(text.replace(/dog/g, 'doll')); 
  相关解决方案