Javascript 为什么h1标签的内容在点击重置按钮后没有改变?
Javascript 为什么h1标签的内容在点击重置按钮后没有改变?,javascript,Javascript,var one=document.getElementById(“one”); var two=document.getElementById(“two”); var reset=document.getElementById(“reset”); var i=0; var j=0; addEventListener(“单击”,函数(){ i=i+1; document.querySelector(“#d1”).textContent=i; }); 2.addEventListener(“单击”,
var one=document.getElementById(“one”);
var two=document.getElementById(“two”);
var reset=document.getElementById(“reset”);
var i=0;
var j=0;
addEventListener(“单击”,函数(){
i=i+1;
document.querySelector(“#d1”).textContent=i;
});
2.addEventListener(“单击”,函数(){
j=j+1;
document.querySelector(“#d2”).textContent=j;
});
reset.addEventListener(“单击”,函数(){
document.getElementsByTagName(“h1”).innerHTML=“0到0”;
});
//当我添加文本内容代替内部html时,它不起作用
>为什么当我点击重置按钮时h1的内容没有改变。
记分员
0到0
播放到:5
一号玩家
球员二
重置
您正在使用的不会返回一个元素,如。它返回一个HTMLCollection
/节点列表
(取决于哪个浏览器),但您可以将其视为标准数组
您应该使用getElementsByTagName[0]
来选择第一个元素
您可以使用innerHTML
或textContent
,但它们的功能不同
innerHTML
将用指定的内容替换h1
标记的内容。因此,document.getElementsByTagName(“h1”).innerHTML=“0到0”
将输出两个您不想要的h1
元素
因此,在任何一种情况下,都可以将innerHTML
或textContent
设置为简单的0到0
var one=document.getElementById(“one”);
var two=document.getElementById(“two”);
var reset=document.getElementById(“reset”);
var i=0;
var j=0;
addEventListener(“单击”,函数(){
i=i+1;
document.querySelector(“#d1”).textContent=i;
});
2.addEventListener(“单击”,函数(){
j=j+1;
document.querySelector(“#d2”).textContent=j;
});
reset.addEventListener(“单击”,函数(){
document.getElementsByTagName(“h1”)[0].innerHTML=“0到0”;
});
//当我添加文本内容代替内部html时,它不起作用
记分员
0到0
播放到:5
一号玩家
球员二
重置
文档。getElementsByTagName(“h1”)
返回一个数组,因此您必须选择所需的h1
您的代码被修改为第一个h1
(假设它总是好的)
var one=document.getElementById(“one”);
var two=document.getElementById(“two”);
var reset=document.getElementById(“reset”);
var i=0;
var j=0;
addEventListener(“单击”,函数(){
i=i+1;
document.querySelector(“#d1”).textContent=i;
});
2.addEventListener(“单击”,函数(){
j=j+1;
document.querySelector(“#d2”).textContent=j;
});
reset.addEventListener(“单击”,函数(){
document.getElementsByTagName(“h1”)[0].innerHTML=“0到0”;
});
//当我添加文本内容代替内部html时,它不起作用
记分员
0到0
播放到:5
一号玩家
球员二
重置
这里有三个问题:
1-getElementsByTagName返回数组,而不是元素。您可以使用“[0]”检索数组的第一个元素,就像我在代码段中所做的那样
(我建议给那个标题一个id。)
2-h1的innerHTML存在问题。当替换h1 innerHTML时,不需要重复h1标记(最终得到嵌套的h1)。但另一个问题是,你不应该忘记d1和d2的跨度,否则代码就会中断
3-此外,不要忘记重置i和j
var one=document.getElementById(“one”);
var two=document.getElementById(“two”);
var reset=document.getElementById(“reset”);
var i=0;
var j=0;
addEventListener(“单击”,函数(){
i=i+1;
document.querySelector(“#d1”).textContent=i;
});
2.addEventListener(“单击”,函数(){
j=j+1;
document.querySelector(“#d2”).textContent=j;
});
reset.addEventListener(“单击”,函数(){
document.getElementsByTagName(“h1”)[0].innerHTML='0到0';
i=j=0;
});
//当我添加文本内容代替内部html时,它不起作用
记分员
0到0
播放到:5
一号玩家
球员二
重置
问题:
document.getElementsByTagName
返回一个数组,以便需要可以使用的索引
document.getElementsByTagName("h1")[0].innerHTML = "<h1>0 to 0</h1>";
document.getElementsByTagName(“h1”)[0].innerHTML=“0到0”;
但更好的版本是:
var one=document.getElementById(“one”),
two=document.getElementById(“two”),
重置=document.getElementById(“重置”),
i=0,
j=0;
addEventListener(“单击”,函数(){
i++;
document.querySelector(“#d1”).textContent=i;
});
2.addEventListener(“单击”,函数(){
j++;
document.querySelector(“#d2”).textContent=j;
});
reset.addEventListener(“单击”,函数(){
i=0,j=0
document.getElementById(“resetId”).innerHTML=“0到0”;//感谢@Micheale
});代码>
记分员
0到0
播放到:5
一号玩家
球员二
重置
getElementsByTagName返回一个节点列表重置后尝试单击其中一个播放机的可能重复项