2011-11-16 59 views
35
<div id="id1"> 
<p> 
    apple 
</p> 
<p> 
    ball 
</p> 
<p> 
    cat 
</p> 
<p> 
    dogsss 
</p> 
</div> 

如何使用jquerydogsss更改为dollsssJquery:查找文本并替换

+0

不,Tkz for all,但你误解了我的意思..'sss'是一个文本,我不知道它究竟是什么b ..但我想改变'狗'为'娃娃' – william

+0

相似到C#替换'string temp =“tasting”; temp = temp.Replace(“tast”,“test”);'那样的。 – william

回答

67

您可以尝试

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

http://jsfiddle.net/2EvGF/

你可以使用,而不是.html()和/或进一步阅历的.replace()呼叫根据您的需要

9
$('p:contains("dogsss")').text('dollsss'); 
+0

这会改变'dogsss'到'娃娃' –

+3

@EricC问题在我回答 –

8

试试这个,

$('#id1').html($('#id1').html().replace('dogsss','dollsss')); 

working sample

+0

@JohnHartsock后更新:请参阅工作示例。它正在更新。希望你错过设置的HTML部分:) –

5

更具体:

$("#id1 p:contains('dog')").text($("#id1 p:contains('dog')").text().replace('dog', 'doll')); 
+0

使用'.html()'而不是'.text()'来保持HTML标签。 – itskawsar

0

我一直在寻找类似的东西,我使用的代码,道格·奥因斯发布,但我的文本有一些br标签和代码正在擦除它。

所以我用这个: (只需注意我替换的.text()为.html())

文字:

< p class = "textcontent" > 
    Here some text replace me 
    <br> here an other text 
    <br> here is more text 
< /p> 

JS:

$('.textcontent').each(function() { 

    var text = $(this).html(); 
    $(this).html(text.replace('replace me', 'I love this text')); 

}); 

而且如果你想编辑几个文本创建一个数组:

var replacetext = { 
    "Text 0": "New Text 0", 
    "Text 1": "New Text 1", 
    "Text 2": "New Text 2", 
    "Text 3": "New Text 3", 
    "Text 4": "New Text 4" 
}; 

$.each(replacetext, function(txtorig, txtnew) { 
    var text = $('#parentid').html(); 
    $('#parentid').html(text.replace(txtorig, txtnew)); 
}); 
+0

如何将它用于具有相同ID或相同类的多个记录? – Super

3

测试查找和替换方法。您也可以使用简单的方法。

var string ='my string' 
var new_string = string.replace('string','new string'); 

alert(string); 
alert(new_string); 
+0

纯粹的JavaScript总是更好! – Shadowbob

0

Joanna Avalos回答是好,只是注意我更换.text().html(),否则,一些内部的HTML元素将被销毁。