2016-09-19 107 views
-1

我正在写一个简单的函数,这使得我的菜单变为动态,按钮点击加载页面。 HTML看起来像这样:一个变量的默认值

<button id="appnav" value="button1" type="button" onclick="app(this.value)">Button 1</button> 
<button id="appnav" value="button2" type="button" onclick="app(this.value)">Button 2</button> 
<button id="appnav" value="button3" type="button" onclick="app(this.value)">Button 3</button> 


<div id="app-div"> 

</div> 

和JavaScript文件看起来像这样:

function app(clickVal) { 
var clickVal; 

    if (clickVal == "button1") { 
    document.getElementById("app-div").innerHTML = "PAGE 1"; 
    } 

    else if (clickVal == "button2") { 
document.getElementById("app-div").innerHTML = "PAGE 2"; 
    } 

    else if (clickVal == "button3") { 
document.getElementById("app-div").innerHTML = "PAGE 3"; 
    } 

} 

而这部分工作得很好,但窗口(DIV ID = “APP-DIV”)是空的,直到一个按钮被点击。我想给它分配一个默认值。我试图通过编写这个功能来做到这一点

function defaultValue() { 
     document.getElementById('app-div').innerHTML = "PAGE 1"; 
    } 

并试图启动它onload的app-div,但它仍然没有工作。有人有任何想法吗?

谢谢!

+3

只要把HTML开始在div ...''

PAGE 1
上 – Scott

+0

DOM准备好,调用函数 – slashsharp

+0

如果你不能将它添加到HTML出于某种原因,只需添加'应用程序(” button1“)'后面的函数,并确保整个事情在div后面的脚本元素中。 (另外,与你要求的无关,从函数的开头删除'var clickVal;',重新声明函数参数是没有意义的。) – nnnnnn

回答

0

代码看起来正确。在defaultValue函数中检查“document.getElementById('app-div')”不是null或undefined。也只是为了抛出这个问题,你将innerHTML设置为一个字符串“PAGE 1”。我假设你知道这不是真正的HTML语法。也许你应该把这个值设置为实际的HTML标记内容,例如文本“PAGE 1”作为div的内容。

+0

是的,我最终计划添加React DOM元素,所以这些值是实际的HTML。谢谢。 –

+0

为什么要将'.innerHTML'设置为'“PAGE 1”'是一个问题?这是div元素的有效内容,不需要包含额外的标签。 – nnnnnn

+0

这不是一个问题,而是一个观察/问题。 –

0

您可以调用默认值功能时,您的DOM准备修改:

document.addEventListener('DOMContentLoaded', defaultValue, false); 

下面的代码片段可添加兼容的目的:

window.addEventListener('load', defaultValue, false); 

document.attachEvent("onreadystatechange", defaultValue); 

window.attachEvent("onload", defaultValue); 
0

这可能避免了default值函数并致电您的功能

function app(clickVal) { ... } 

app("button1"); 

即使它是一个德故障值应该直接在HTML

<div id="app-div"> PAGE 1</div> 
+0

我已经在HTML中指定了默认值,并且工作正常,我想根本不会以任何其他方式让我受益。 –

+0

它的工作原理,应该工作 – 2016-09-19 03:41:49

0

指定您只需拥有

<div id="app-div"> 
    PAGE 1 
</div> 

单击按钮时,的#app-div的innerHTML将被替换。无需defaultValue()