2010-05-14 86 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>");