2011-06-02 72 views
2

替換文本有沒有更優雅的方式替換文本的HTML元素裏比:jQuery的內部HTML

$el = $("#myDiv"); 
$el.html($el.html().replace("something", "something new")); 
+0

對於任何人在這裏(如我所做的)錯過了這一點,我們只想替換部分文本,而不是全部。在之前和之後顯示完整的文本會有所幫助。 – DOK 2011-06-02 09:05:26

回答

6
$('#myDiv').html(function(index, oldhtml) { 
    return oldhtml.replace('something', 'something new'); 
}); 
+0

你爲什麼通過索引? – DOK 2011-06-02 08:48:27

+0

@DOK爲了能夠設置第二個參數,我想 – Phil 2011-06-02 08:49:25

+0

@DOK,因爲這就是回調的簽名是如何定義的。它表示選擇器在匹配元素集中的索引。在這種情況下,它將始終與使用的id選擇器相同(應該是唯一的)。 – 2011-06-02 08:49:45

1

如果我的理解:

oldText = $('#myDiv').html(); 
$('#myDiv').html(oldText.replace('something','something new')); 

http://jsfiddle.net/wmgBN/

+0

在html中將所有「某物」替換爲「新東西」,而不是將「新東西」作爲新的html內容 – ic3 2011-06-02 08:43:14

+0

誰把這個作爲一個好的答案? – ic3 2011-06-02 08:44:27

+0

@icCube:你在找什麼? – NAVEED 2011-06-02 08:53:05

0

你可以嘗試

e1.html(function(i,oldHtml){ 
    return oldhtml.replace("something", "something new"); 
} 

其不同的,但不知道優雅。