Jquery:查找文本并替换

wil*_*iam 44 jquery

<div id="id1">
 <p>
   apple
 </p>
 <p>
   ball
 </p>
 <p>
   cat
 </p>
 <p>
   dogsss
 </p>
</div>
Run Code Online (Sandbox Code Playgroud)

如何更改dogsssdollsss使用jquery

Dou*_*ngs 90

你可以试试

$('#id1 p').each(function() {
    var text = $(this).text();
    $(this).text(text.replace('dog', 'doll')); 
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/2EvGF/

您可以根据自己的需要使用替代.html()和/或进一步改进.replace()呼叫

  • 仅替换每个`p`中的第一个匹配项,而不是每个! (3认同)

Jos*_*kle 28

$("#id1 p:contains('dog')").html("doll");
Run Code Online (Sandbox Code Playgroud)

那就行了.

http://jsfiddle.net/pgDFQ/

  • 如果'p`包含**狗吠叫**怎么办? (3认同)

Cha*_*mal 9

试试这个,

$('#id1').html($('#id1').html().replace('dogsss','dollsss'));
Run Code Online (Sandbox Code Playgroud)

工作样本


Joh*_*ock 8

$('p:contains("dogsss")').text('dollsss');
Run Code Online (Sandbox Code Playgroud)

  • @EricC我回答后问题已经更新了 (3认同)

Doc*_*dam 5

更具体:

$("#id1 p:contains('dog')").text($("#id1 p:contains('dog')").text().replace('dog', 'doll'));
Run Code Online (Sandbox Code Playgroud)


san*_*mar 5

警告 string.replace('string','new string')不会替换所有字符。您必须使用regax替换。

对于EXP:我有一个刺老STRING1,老字符串2,老STRING3并要替换

然后我用了。

    var test = 'old string1, old string2, old string3';

   //***** Wrong method **********
    test = test.replace('old', 'new'); // This  will replaced only first match not all
    Result: new string1, old string2, old string3

  //***** Right method **********
    test = test.replace(/([old])+/g, 'new'); // This  will replaced all match 
    Result: new string1, new string2, new string3
Run Code Online (Sandbox Code Playgroud)