JavaScript中的变量:出现错误

JavaScript中的变量:出现错误,javascript,html,variables,Javascript,Html,Variables,当我启动我的网站时,JavaScript不起作用。Safari给出了一个错误: TypeError:“null”不是对象(正在计算“document.getElementById(“aktuell”).innerHTML”) 这是我的JavaScript代码: <script> var aktueller = document.getElementById("aktuell").innerHTML; function go() { neu = aktueller - 1;

当我启动我的网站时,JavaScript不起作用。Safari给出了一个错误:

TypeError:“null”不是对象(正在计算“document.getElementById(“aktuell”).innerHTML”)

这是我的JavaScript代码:

<script>
var aktueller = document.getElementById("aktuell").innerHTML;
function go() {
    neu = aktueller - 1;
    document.getElementById("aktuell").innerHTML = neu;
    if (neu == 1) {
        document.getElementById("zweite").style.display = 'none';
        document.getElementById("dritte").style.display = 'none';
    }
    else if (neu == 2) {
        document.getElementById("dritte").style.display = 'none';
    }
    else if (neu == 0) {
        document.getElementById("erste").style.display = 'none';
        document.getElementById("zweite").style.display = 'none';
        document.getElementById("dritte").style.display = 'none';
    }
}
</script>

var aktueller=document.getElementById(“aktuell”).innerHTML;
函数go(){
neu=aktueller-1;
document.getElementById(“aktuell”).innerHTML=neu;
如果(neu==1){
document.getElementById(“zweite”).style.display='none';
document.getElementById(“dritte”).style.display='none';
}
否则如果(neu==2){
document.getElementById(“dritte”).style.display='none';
}
else如果(neu==0){
document.getElementById(“erste”).style.display='none';
document.getElementById(“zweite”).style.display='none';
document.getElementById(“dritte”).style.display='none';
}
}
这是我用过的身体部位:

<body>
<p id="aktuell" style="display:none;" >0</p>
<center>
    <button>Zur&uuml;ck</button><button onclick="go();">Weiter</button>
</center>
<div id="nullte"><img src="data/nullte.jpg" width="500px" /></div>
<div id="erste"><img src="data/erste.jpg" width="500px" /></div>
<div id="zweite"><img src="data/zweite.jpg" width="500px" /></div>
<div id="dritte"><img src="data/dritte.jpg" width="500px" /></div>
</body>

0

Zurü;克威特
评估脚本时,主体尚未构建。您需要使用jQuery将脚本和正文的结尾放在一起,或者将其放在文档就绪的部分中

 $(document).ready(function() { 
    var aktueller = document.getElementById("aktuell").innerHTML;
    /* more code goes here */ 
 }); 
更多信息


为什么我要避免使用
窗口。onload

您必须等待页面完全加载:

<script>
    var aktueller = null;
    window.onload = function(){
        aktueller = document.getElementById("aktuell").innerHTML;
    }
    function go() {
        //....
    }
</script>
另一个选项是在body标记上使用onload事件:

<head>
<script type='text/javascript'>
    var aktueller = null;
    function init(){
        aktueller = document.getElementById("aktuell").innerHTML;
    }
    function go(){
        //...
    }
</script>
</head>
<body onload="init();">
</body>

如果您的脚本位于
中,则您要查找的元素还不是DOM的一部分-浏览器会在继续解析HTML的其余部分之前立即运行脚本。您可以将脚本移动到
的末尾。JavaScript在加载DOM之前执行,因此还不存在具有该ID的元素。将脚本移动到页面底部,或者在
窗口中执行所有操作。onload
。嗯,不存在JQuery标记,而且由于这可以通过vanilla JavaScript轻松完成(显然,因为JQuery是在vanilla JavaScript中构建的),因此我不认为有理由仅为此包含JQuery。我不理解-1。我提供了一个简单的JavaScript解决方案(将脚本移动到正文末尾)。此外,我还提供了一个更好的选择,使用jQuery。我认为-1是不正确的(答案与问题相关,很有用)。好的,我同意。我删除了我的-1。谢谢!祝您有个美好的一天!为什么要使用jQuery等待DOM就绪,而不是选择相关元素呢?我自己通常使用香草JavaScript,但我想提及所有选项。那么为什么不使用
$(“#aktuell”).html()
<head>
<script type='text/javascript'>
    var aktueller = null;
    function init(){
        aktueller = document.getElementById("aktuell").innerHTML;
    }
    function go(){
        //...
    }
</script>
</head>
<body onload="init();">
</body>
var aktueller = null;
$(document).ready(function(){
    aktueller = $("#aktuell").html();
});