2011-10-12 96 views
2

我有一个问题,如何在div标记中使用javascript替换()?我试过这样:如何在div中使用替换?

<html> 
<body> 
<div id="ahoj">ahoj</div> 

<script type="text/javascript"> 

document.write(document.getElementById("ahoj").replace("ahoj","hola")); 

</script> 
</body> 
</html> 

...但它不工作..任何想法?

回答

2

document.getElementById("ahoj")是一个HTMLElement对象。使用document.getElementById("ahoj").innerHTML

document.write(document.getElementById("ahoj").replace(/ahoj/g,"hola")); 

或者,如果你不希望一个新的元素:

document.getElementById("ahoj").innerHTML = document.getElementById("ahoj").innerHTML.replace(/ahoj/g,"hola"); 

替换字符串的innerHTML设置为新的字符串。 Example

+0

是的,这就是我一直在寻找的! –

0

我认为innerHTML是你需要使用的。

document.write(document.getElementById("ahoj").innerHTML.replace("ahoj", "hola")); 
0
<script type="text/javascript"> 
    var el = document.getElementById("ahoj"); 
    el.innerHTML = el.innerHTML.replace(/ahoj/g,”hola”); 
</script> 
+0

即使您的代码确实有效,您也会在页面中添加第二个元素。我猜你想更改现有的元素。 最好抓住该元素,然后操纵它。 请注意,我的解决方案不会更改ID。如果你的目标是克隆改变ID和InnerHTML的第一个元素,你可能想要提出一个更可重用的解决方案;也许从零开始构建节点或使用模板。 – Dave

+0

等等,很抱歉,但我还有1个问题,如何使它取代evary ahoj单词?因为这只会取代一个.. 例如:

ahoj ahoj ahoj
结果:hola ahoj ahoj 而我想要的结果是:hola hola hola ... 如何? –

+0

啊。对于那个很抱歉。我编辑代码以使用全局替换正则表达式。 – Dave