用javascript替换文档中的特定文本?

时间:2010-07-29 19:03:07

标签: javascript

我无法让它工作......它只是用结果替换整个页面

var str="textiwanttoreplace";
var el = document.getElementById('welcome');
el.innerHTML = str;
var date = new Date();
var hours = date.getHours();


if (hours >= 8 && hours < 13) {
    el.innerHTML = str.replace("textiwanttoreplace", "It's 8 and 13");
} else if (hours >= 13 && hours < 18) {
    el.innerHTML = str.replace("textiwanttoreplace", "It's 13 and 18");
} else if (hours > 18 && hours <= 23) {
    el.innerHTML = str.replace("textiwanttoreplace", "It's 18 and 23");
} else {
    el.innerHTML = str.replace("textiwanttoreplace", "Hello");
}

编辑已更改,现在我没有看到任何结果,我错过了什么?

3 个答案:

答案 0 :(得分:2)

It would ,如果您想要替换该文字并放在页面的某个部分,您应该执行以下操作:

var str="textiwanttoreplace";
var el = document.getElementById('element_id');
el.innerHTML = str;

所以而不是:

document.write();

使用:

var el = document.getElementById('element_id');
el.innerHTML = str.replace("textiwanttoreplace", "Good Morning");

只需将element_id替换为您要在其中放置文本结果的元素的ID。

<强>更新

根据您的评论,我对其进行了测试并且确实有效,您可以在此处查看:

http://jsbin.com/odipu3

答案 1 :(得分:1)

document.write is BAD practice.

文档(您要替换的文档)是否存在于文档的多个位置?执行此文本替换的正确方法是遍历DOM并替换包含所述文本的特定元素的文本内容。

答案 2 :(得分:0)

您需要缩小要替换的文本的父级。你可以对整个文档做这件事,但效率极低。

<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript></script>
<script type="text/javascript">
    $(document).ready(function() {
       $("div.replace-me").text($(this).text().replace('will replace', 'Good morning'));
     });
</script>