如何交换标题标记的内容-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等号更安全,因为如果比较两种不同的变量类型,它将正确返回布尔值。