2017-09-25 7 views
0

Hallo! Ich verwende getElementById(), um die href eines Favicons in eine Zufallszahl zu ändern, die einem Bild zugeordnet ist. Jedes Mal, wenn ich dies tue, ist die Variable, der ich sie zuordnen möchte, null. Was mache ich falsch?Warum erscheint meine Variable als null?

<!DOCTYPE html> 

<html> 
<head> 
<script type="text/javascript"> 


    var number = Math.floor((Math.random() * 5) + 1); 

    var ico = number + ".ico" 

    document.getElementById("favicon").href = ico <!-- should change the icon --> 

</script> 
<title>Cool Server People!</title> 
<link rel="stylesheet" href="style.css"> 
<link id="favicon" rel="shortcut icon" href="1.ico" /> <!-- should edit this part --> 

</head> 
<body> 
<div class="header"> 
    <h1>Cool Server People</h1> 
</div> 

<div class="space"> 

</div> 

<div class="blog"> 

    <a href="test-post.html" class="post">Blog Post</a> 
    <p>asdfdasdfasdfasdfa</p> 

</div> 

+1

ich denke, es mit der Position des Script-Tag zu tun hat. Inline-Skripte werden ausgeführt, sobald sie angezeigt werden, sodass das Link-Tag noch nicht existiert. Versuchen Sie, das Skript an den unteren Rand der Seite zu verschieben (direkt über dem Ende '' tag. – solarc

Antwort

1
  1. Bitte geben Sie Ihre JS Code vor
  2. Dieser Fehler ist, weil Sie ein Element früher als DOM Inhalt geladen wird zu bekommen versuchen. Das ist es!

<!DOCTYPE html> 
 

 
<html> 
 
<head> 
 
    <title>Cool Server People!</title> 
 
    <link rel="stylesheet" href="style.css"> 
 
    <link id="favicon" rel="shortcut icon" href="1.ico" /> <!-- should edit this part --> 
 

 
</head> 
 
<body> 
 
<div class="header"> 
 
    <h1>Cool Server People</h1> 
 
</div> 
 

 
<div class="space"> 
 

 
</div> 
 

 
<div class="blog"> 
 

 
    <a href="test-post.html" class="post">Blog Post</a> 
 
    <p>asdfdasdfasdfasdfa</p> 
 

 
    <script type="text/javascript"> 
 
     
 
     var number = Math.floor((Math.random() * 5) + 1); 
 
     var ico = number + ".ico"; 
 
     document.getElementById("favicon").href = ico; <!-- should change the icon --> 
 

 
    </script> 
 

 
</div>