内部html 不断累加而不是替换它 - javascript - html
Innerhtml keeps adding up instead of replacing it - javascript - html
我有一个非常复杂的代码需要解释,而且我的母语不是英语,所以我试图用一个简单的例子来解释我的问题。
我有这个功能(我们称之为功能检查)。我向一个按钮添加了一个事件监听器(我们称它为 button1)。单击按钮时,将执行该功能。
Function check () {
if (document.getElementById("id1").hasAttribute("clicked")) {
document.getElementById("id2").innerHTML = '<p>Hello World!</p>;
} else {
document.getElementById("id2").innerText = "Hello you";
}
}
button1.addEventListener("click", check);
问题来了:当它没有属性时,它会显示“你好”。这很棒。再次点击,它仍然只显示一次,再次很棒。但是,如果稍后它确实具有该属性并且再次单击该按钮,那么它会将“Hello you”显示为“Hello world!”这不是很好。
更糟糕的是,如果“Hello you”已显示或未显示,就会发生这种情况,当我再次单击该按钮时,它会继续添加 innerHTML,因此即使已显示“Hello world”,它也会添加每次我点击按钮时它都在下面。
有没有办法替换已经存在的文本或 html 代码?
我试过在互联网上查找,但找不到解决方案。我是初学者,所以我希望你能用简单的方法帮助我解决这个问题
检查这个
function check () {
if (document.getElementById("id1").hasAttribute("clicked")) {
document.getElementById("id2").innerHTML = '<p>Hello World!</p>';
} else {
document.getElementById("id2").innerText = "Hello you";
}
}
document.getElementById("button1").addEventListener("click", check);
document.getElementById("button2").addEventListener("click", changeAttr);
function changeAttr(){
document.getElementById("id1").setAttribute('clicked',true)
}
<div id="id1"></div>
<div id="id2"></div>
<button id="button1">Click</button>
<br/>
<br/>
<button id="button2">Add Attribute </button>
我有一个非常复杂的代码需要解释,而且我的母语不是英语,所以我试图用一个简单的例子来解释我的问题。
我有这个功能(我们称之为功能检查)。我向一个按钮添加了一个事件监听器(我们称它为 button1)。单击按钮时,将执行该功能。
Function check () {
if (document.getElementById("id1").hasAttribute("clicked")) {
document.getElementById("id2").innerHTML = '<p>Hello World!</p>;
} else {
document.getElementById("id2").innerText = "Hello you";
}
}
button1.addEventListener("click", check);
问题来了:当它没有属性时,它会显示“你好”。这很棒。再次点击,它仍然只显示一次,再次很棒。但是,如果稍后它确实具有该属性并且再次单击该按钮,那么它会将“Hello you”显示为“Hello world!”这不是很好。
更糟糕的是,如果“Hello you”已显示或未显示,就会发生这种情况,当我再次单击该按钮时,它会继续添加 innerHTML,因此即使已显示“Hello world”,它也会添加每次我点击按钮时它都在下面。
有没有办法替换已经存在的文本或 html 代码?
我试过在互联网上查找,但找不到解决方案。我是初学者,所以我希望你能用简单的方法帮助我解决这个问题
检查这个
function check () {
if (document.getElementById("id1").hasAttribute("clicked")) {
document.getElementById("id2").innerHTML = '<p>Hello World!</p>';
} else {
document.getElementById("id2").innerText = "Hello you";
}
}
document.getElementById("button1").addEventListener("click", check);
document.getElementById("button2").addEventListener("click", changeAttr);
function changeAttr(){
document.getElementById("id1").setAttribute('clicked',true)
}
<div id="id1"></div>
<div id="id2"></div>
<button id="button1">Click</button>
<br/>
<br/>
<button id="button2">Add Attribute </button>