2012-07-04 47 views
56

就像標題所說的那樣,我想要替換div中文本的特定部分。jQuery如果div包含此文本,則替換文本的那一部分

的結構是這樣的:

<div class="text_div"> 
    This div contains some text. 
</div> 

而且我想只有「包含」與「大家」來代替,例如。 我找不到解決方案。

+0

如果文本是「這個div包含一些包含一些字母的文本」,那麼我想更改第一個包含,而不是第二個。或者只是選擇任何一個字,它會被預定義的一個改變。 – stockBoi

回答

100

可以使用text方法並傳遞返回修改後的文本的功能,使用本地String.prototype.replace方法進行更換:

​$(".text_div").text(function() { 
    return $(this).text().replace("contains", "hello everyone"); 
});​​​​​ 

這裏有一個working example

+1

這使它!非常感謝:) – Daniel

+1

@DanielLundahl - 不客氣,很高興我可以幫助:) –

+2

您可以使用正則表達式/ iwantreplacethis/g爲所有ocurences – Aiphee

8
var d = $('.text_div'); 
d.text(d.text().trim().replace(/contains/i, "hello everyone")); 
4

如果有可能,你可以換字()你想在一個span標籤來代替,像這樣:

<div class="text_div"> 
    This div <span>contains</span> some text. 
</div> 

然後你可以很容易地改變它的內容與jQuery:

$('.text_div > span').text('hello everyone'); 

如果您無法將其包裝在span標籤中,則可以使用正則表達式。

3

可以使用contains selector搜索包含特定文本

var elem = $('div.text_div:contains("This div contains some text")')​; 
elem.text(elem.text().replace("contains", "Hello everyone")); 

元素

+0

如果我的字符串包含多個目標單詞,它會替換多個單詞,那麼會怎樣? –

相關問題