Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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
如何交换标题标记的内容-HTML/Javascript_Javascript_Html - Fatal编程技术网

如何交换标题标记的内容-HTML/Javascript

如何交换标题标记的内容-HTML/Javascript,javascript,html,Javascript,Html,我有以下资料: 函数changeFirst(){ 让p=document.getElementById(“firstElement”)[0].innerhtml; 警惕(p); 如果(p=“这是第一个元素”){ document.getElementById(“firstElement”).innerHTML=“首先更改” }否则{ document.getElementById(“firstElement”).innerHTML=“首先切换回” } } 这是第一个元素 更改第一个元素像这样

我有以下资料:

函数changeFirst(){
让p=document.getElementById(“firstElement”)[0].innerhtml;
警惕(p);
如果(p=“这是第一个元素”){
document.getElementById(“firstElement”).innerHTML=“首先更改”
}否则{
document.getElementById(“firstElement”).innerHTML=“首先切换回”
}
}

这是第一个元素

更改第一个元素
像这样尝试。在这里,我引入了一个标志,并将其切换为检查内容

var changed=false;
函数changeFirst(){
如果(!已更改){
更改=正确;
document.getElementById(“firstElement”).innerHTML=“首先更改”;
}否则{
更改=错误;
document.getElementById(“firstElement”).innerHTML=“首先切换回”;
}
}

这是第一个元素

更改第一个元素
document.getElementById返回一个元素

还=是赋值,需要==或==进行比较

你的意思可能是:

函数changeFirst(){
设h=document.querySelector(“#firstElement h1”);
h、 textContent=h.textContent==“这是第一个元素”?“首先更改”:“这是第一个元素”
}

这是第一个元素

更改第一个元素
这正是您所要求的。你很接近

1) 当包含javascript时,您可以只使用脚本标记,它会很好地工作,当您使用JSON或JQuery时,您必须使用.js文件的include标记。javascript代码可以用script type=text/javascript表示

2) 在javascript中进行比较时:使用三个等号(==)

进行非变量类型敏感比较时:使用两个等号(=)

设置变量时:使用一个等号(=)

3) 调用动态标头时,它不是数组,因此不需要[0],您只需比较动态标头div的innerhtml,它只是一个标头,数组用于多种用途。继续编写代码,因为您似乎有了一个良好的开端,并且出现了一些小的语法错误

<!DOCTYPE html>
<html>

<body>

  <button onclick="changeHeader()">Click me</button>

  <div id="dynamicHeader"><h1>Hello World</h1></div>

  <p>Clicking the button changes the header.</p>

  <script>
    function changeHeader() {
      if (document.getElementById("dynamicHeader").innerHTML === "<h1>Hello World</h1>") {
        document.getElementById("dynamicHeader").innerHTML = "<h1>Goodbye World</h1>";
      } else {
        document.getElementById("dynamicHeader").innerHTML = "<h1>Hello World</h1>"
      }
    }
  </script>
</body>

</html>

点击我
你好,世界
单击按钮可更改标题

函数changeHeader(){ if(document.getElementById(“dynamicHeader”).innerHTML===“Hello World”){ document.getElementById(“dynamicHeader”).innerHTML=“再见世界”; }否则{ document.getElementById(“dynamicHeader”).innerHTML=“Hello World” } }
您是否查看了控制台错误?它们是不言自明的。您缺少函数上的结束卷曲,这可能是一个复制错误,然后您将结果
getElementById
视为一个数组,而该函数只返回一个元素。您缺少上面的函数块中的结束卷曲。
=
是赋值<代码>=和
==
是比较。在
中,如果(p=“这是第一个元素”)
。在
getElementById(“firstElement”)[0]
中没有
[0]
,对不起。忘记复制结束括号旁的注释:我宁愿添加/删除一些类,检查它是否存在,并相应地添加文本,而不是直接与文本进行比较。你能解释为什么不需要吗?我没有否决,但你应该解释你的更改,例如,修复语法错误。@SilviuBurcea我已经解释过了。@j08691如果这是原因的话。他们需要一些心理检查。使用类也可以,但使用变量的解决方案比直接使用长文本要好得多。您应该使用
let
而不是
var
,但这只是吹毛求疵:)为什么不使用OPs示例?添加了另一个答案,完全符合他的要求。为什么污染。为什么要删除我制作的片段。只需更改您现有的答案并保留代码片段,这样就有了一个可以玩的游戏。使用两个等号是不好的做法,请改用三个等号进行类型安全比较。更新代码以包含三个等号,并添加了解释链接。对于这个小比较,两个等号将起作用。3等号更安全,因为如果比较两种不同的变量类型,它将正确返回布尔值。