2010-05-14 88 views
0

我有一個問題。今天早上我有一份工作,但我不知道該怎麼做。 我在這裏的工作(HTML):js - 使用替換方法替換html元素

<div class="demo"> 
    <p>this is demo text</p> 
</div> 

這裏是我的JS:

var tempdata = $(".demo").text(); 
var replacedata = tempdata.replace("text","<span>1234</span>"); 

看一切就OK了。但結果是:this is demo <span>1234</span>。這不是我想要的結果。如何在此字符串中使用replace方法變成HTML元素?

回答

1

在分配值恢復,使用.html()代替.text()所以不會對其進行編碼,就像這樣:

var tempdata = $(".demo").text(); 
var replacedata = tempdata.replace("text","<span>1234</span>"); 
$(".demo").html(replacedata);​​​​​​ 

You can see a demo here

此外,您還可以通過一種方法來.html()如果你這樣做了很多元素,像這樣:

$(".demo").html(function(i, h) { 
    return h.replace("text","<span>1234</span>"); 
});​ 

注意這也使用.html()作爲源代碼,但對示例代碼沒有影響。

You can see a demo of that here

+0

謝謝你!我完成了你的回答:)。 – Rueta 2010-05-14 02:56:00

+0

嗨,尼克! html(function(i,h) - 「i」代表什麼? – 2010-09-10 07:45:50

+0

@ming - 它獲得2個參數,第一個是索引,第二個是當前的'.html()'值:) – 2010-09-10 09:47:02

1
document.getElementById('demo').firstElementChild.innerHTML = 
    document.getElementById('demo').firstElementChild.innerHTML.replace(/text/, "<span>1234</span>");