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

时间:2015-08-07 07:39:52

标签: javascript jquery html

<div id="id1">

   apple

   ball

   dogsss

   dogsssdogsss

   dogsssdogsssdogsss

</div>

如何使用jquery将所有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

5 个答案:

答案 0 :(得分:2)

您的replace只会删除字符串中的第一个匹配项。使用regex和replace删除所有匹配项。使用全局标记,即g中的regex来替换所有匹配项。

更改

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

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

此外,您可以使用text()进行回调来更新元素的innerText

<强>演示

&#13;
&#13;
$('#id1').text(function(i, oldText) {
  return oldText.replace(/dog/g, 'doll');
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以将.text与回调一起使用,并将正则表达式与/g修饰符一起使用

&#13;
&#13;
$('#id1').text(function(index, text) {
    return text.replace(/dog/g, 'doll'); 
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

不使用replace(),而是使用split()join(),它将替换所有匹配项而不是第一个:

&#13;
&#13;
$('#id1').each(function() {
    var text = $(this).text();
    $(this).text(text.split("dog").join("doll")); 
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

就是这样:

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

答案 4 :(得分:0)

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

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