Quelle est la différence entre mettre le script dans la tête et le corps?

J'ai été faire un problème .

<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <script type="text/javascript">
  alert(document.getElementsByTagName("li").length); 
  </script>
  <title>purchase list</title>
</head>
<body>
  <h1>What to buy</h1>
  <ul id="purchases">
    <li> beans</li>
    <li>Cheese</li>
  </ul>
</body>

Quand j'ai mis les scripts dans la tête, le résultat montre que 0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
                      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>Shopping list</title>
</head>
<body>
  <h1>What to buy</h1>

  <ul id="purchases">
    <li>Cheese</li> 
    <li>Milk</li>
    <script type="text/javascript">
    alert(document.getElementsByTagName("li").length);
    </script>
  </ul>
</body>

Quand j'ai essayé de mettre les scripts dans le corps, le résultat montre que 2. pourquoi il y a une telle différence?
quelle est la principale différence?

  • Parce qu'à l'époque de appelez-vous cela dans la tête, le li n'existe pas encore (Aussi loin que le DOM est concerné)
  • Il est recommandé de mettre du JavaScript (pas de bibliothèques, mais de travail JS que la page utilise) sur le fond de la page. Comme pour les bibliothèques que vous devriez inclure dans <head>.Notez que, le navigateur est rendu de code de haut en bas.
  • double possible de Javascript - tête, le corps ou jQuery?
  • merci u al.... 🙂
  • Très bonne explication et de la recommandation: stackoverflow.com/a/24070373/548473
InformationsquelleAutor Deepika C P | 2013-06-14