function init(){
var flag=true;
if(flag)
{
document.getElementById("panel").innerHTML=
"power is on<br />";
}
if(7<2)
{
document.getElementById("panel").innerHTML=
"<br />failure";
}
if(2<7)
{
document.getElementById("panel").innerHTML=
"<br />success";
}
}
window.onload=init;
这是if.js我将它加载到另一个html文件中,但这是运行的主要代码。
我得到的唯一输出是“成功”被写入但是“电源开启”并没有出现什么问题?
答案 0 :(得分:2)
不要在多个地方分配innerHTML,创建一个字符串并立即分配它。
var flag = true,
html = "";
if (flag) {
html += "power is on<br />";
}
if (7 < 2) {
html += "<br />failure";
}
if (2 < 7) {
html += "<br />success";
}
document.getElementById("panel").innerHTML = html;
答案 1 :(得分:0)
var panel = document.getElementById("panel");
if(flag) {
panel.innerHTML += "power is on<br />";
}
if(7<2) {
panel.innerHTML += "<br />failure";
}
if(2<7) {
panel.innerHTML += "<br />success";
}
每次更改innerHTML
时,您都会覆盖所有以前的内容,因此您必须使用+=
附加字符串。
也许您可能只想创建一次对panel元素的引用。
答案 2 :(得分:0)
您正在替换当前的HTML,您应该使用+ =而不是=。
function init(){
var flag=true;
if(flag)
{
document.getElementById("panel").innerHTML +=
"power is on<br />";
}
if(7<2)
{
document.getElementById("panel").innerHTML +=
"<br />failure";
}
if(2<7)
{
document.getElementById("panel").innerHTML +=
"<br />success";
}
这对你有什么用?
答案 3 :(得分:0)
设置元素的innerHTML
将先前使用给定HTML字符串的内容替换为。所以正在发生的事情是“电源开启”瞬间可见(计算机现在非常快),然后立即取代“成功”。
答案 4 :(得分:0)
您可以使用else而不是if
function init(){
var flag=true;
if(flag)
{
document.getElementById("panel").innerHTML=
"power is on<br />";
}
else if(7<2)
{
document.getElementById("panel").innerHTML=
"<br />failure";
}
else if(2<7)
{
document.getElementById("panel").innerHTML=
"<br />success";
}
}
window.onload=init;
请注意以上代码始终显示“电源已打开”,因为在您的方法中,您将标志分配为true,如果您想要多个输出,则可以使用串联方法,如其他建议。
答案 5 :(得分:0)
最后一个if语句将始终评估为true。
if(2<7)
{
document.getElementById("panel").innerHTML=
"<br />success";
}
这意味着“成功”将始终取代面板元素内的任何内容。 确保您的条件确实是您想要的,并且替换实际上是您的意图。否则,像其他人建议的那样追加字符串。