Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 内容替换js脚本失败_Javascript_Replace - Fatal编程技术网

Javascript 内容替换js脚本失败

Javascript 内容替换js脚本失败,javascript,replace,Javascript,Replace,下面的代码似乎无法正常工作。新的H2文本应取代para1。这种情况不会发生。我使用了Supreme,然后浏览了浏览器控制台,甚至查看了SO的代码片段。我几乎可以肯定我已经一字不差地掌握了代码 第一段有自己的id属性,应该被在我的JS脚本中创建的newH2Text替换。我在这里找不到我的错误。请帮忙 PS刷新按钮工作正常。没有问题 函数replaceHeading(){ var newH2=document.createElement(“h2”); var newH2Text=document.

下面的代码似乎无法正常工作。新的H2文本应取代para1。这种情况不会发生。我使用了Supreme,然后浏览了浏览器控制台,甚至查看了SO的代码片段。我几乎可以肯定我已经一字不差地掌握了代码

第一段有自己的id属性,应该被在我的JS脚本中创建的newH2Text替换。我在这里找不到我的错误。请帮忙

PS刷新按钮工作正常。没有问题

函数replaceHeading(){
var newH2=document.createElement(“h2”);
var newH2Text=document.createTextNode(“欢迎”);
newH2.appendChild(newH2Text);
var myDiv=document.getElementById(“id1”);
var oldP=document.getElementById(“para1”);
myDiv.replaceChild(新H2,旧P);
}
window.onload=function(){
document.getElementById(“btn”).onclick=replaceHeading;
}

欢迎来到我的网页

四处看看



NewH2
大写,但应为
NewH2
加小写

myDiv.replaceChild(newH2,oldP);
有关示例,请参见此

更新

要更早地捕获这些错误,可以使用“严格模式”。这方面的一个例子是:

;(function(){
   "use strict";
   function replaceHeading(){
          var newH2=document.createElement("h2");
          var newH2Text=document.createTextNode("Welcome");
          newH2.appendChild(newH2Text);
          var myDiv=document.getElementById("id1");
          var oldP=document.getElementById("para1");
          myDiv.replaceChild(NewH2,oldP);
     }
}());

这将导致错误
未捕获引用错误:未定义NewH2

至少有两种不同的方法来执行您正在尝试的操作:

函数replaceHeading(){
/*****纠正和工作
var newH2=document.createElement(“h2”);
var newH2Text=document.createTextNode(“欢迎”);
newH2.appendChild(newH2Text);
var oldP=document.getElementById(“para1”);
document.getElementById(“id1”).replaceChild(newH2,oldP);
*////
//或者更简单的方法
document.getElementById(“para1”).innerHTML=“欢迎”;
}
window.onload=function(){
document.getElementById(“btn”).onclick=replaceHeading;
}

欢迎来到我的网页

四处看看



成功了!还有什么要检查的吗?JS是区分大小写的,但我查看了3个不同的UI,却看不到它。有什么建议吗?按照JS惯例,您总是以小写字母开头。但是,我还可以采取其他预防措施吗?您可以使用“严格模式”以避免将来出现这种情况。在这种情况下,您将得到一个错误。请检查以下文档:。事实上,我在几周前也发表了一篇关于这一点的博文:。我更新了我的答案,以包含一个例子。我知道通过INNERhtml,但这是一个教程。这里的要点是熟悉创建节点以及所有这些。但是是的,HTML更简单。还有,为什么我需要window.onload来使用innerhtml?您需要window.onload,因为您必须确保文档已完全加载,以便您的文档.getElementById(“btn”)可以返回有效值。window.onload的另一个替代方法是将所有javascript放在文档末尾,紧靠结束正文标记之前”