2015-03-11 2 views
-4

J'ai un fichier html avec des scripts Javascript à l'intérieur. Quand je fais un clic droit sur le fichier, ouvrez avec Firefox localement, cela fonctionne parfaitement bien. Cependant, quand je mets le fichier sur le serveur, le Javascript ne fonctionne pas comme je l'espère et j'ai cette erreur -Pourquoi ai-je cette erreur dans mon JavaScript?

TypeError: Cannot read property 'rows' of null

var tableResult = document.getElementById("tableForChange"); 
    for (var y=1; y < tableResult.rows.length;){ //error on this line 

tableResult est une table html. Tout fonctionne correctement lorsque j'ouvre le fichier localement. TableResult est une table html générée en appliquant une transformation XSL à un document XML. dans le cadre de la transformation XSL je fais <table id="tableForChange">. Lorsque j'ouvre le fichier localement et inspecte l'élément, la table a l'ID. Cependant, lorsque je charge le fichier en ligne et que j'inspecte l'élément, la table n'a pas d'identifiant.

+2

'tableResult' est vide. Il n'a pas retourné un élément. Probablement l'élément n'est pas sur la page au moment où ce script est invoqué ou vous avez fait une faute de frappe dans le sélecteur. – Mouser

+0

Mais cela fonctionne quand j'ouvre le fichier localement? – sergiisuikoden

+0

J'ai ajouté un lien – sergiisuikoden

Répondre

1
TypeError: Cannot read property 'rows' of null 

donc l'objet que vous accédez à la propriété sur rows est en fait null. Ce qui signifie que tableResult est null.

Ce qui signifie que document.getElementById("tableForChange") renvoie null.

Ce qui signifie probablement que l'élément avec id "tableForChange" n'existe pas sur la page, au moins lorsque ce javascript est exécuté.


  1. Est-ce votre javscript exécuter dans la balise <head> avant que le corps est construit? Si c'est le cas, déplacez ce code pour exécuter onload à la place.
  2. Vous êtes sûr que cet élément existe réellement? Peut-être qu'il y a une faute de frappe dans votre identifiant quelque part.
+0

La vraie question derrière ceci est vraiment: pourquoi est-elle nulle. – Mouser