2011-10-27 6 views
1

Je suis en train d'élaborer un plan de salle en ligne pour mon bureau. Voici un peu de XML que j'ai fait pour que je puisse tester si mon idée fonctionne - la souris sur l'image du bureau deviendra verte si le bureau est libre et rouge si le bureau est pris (l'image que j'ai utilisée a été découpée avec Fireworks et le reste mon dev est fait dans Visual studio 2010.Javascript pour lire le fichier XML

<?xml version="1.0" encoding="utf-8" ?> 
<company> 
    <employee id="1" email="[email protected]" phone="1234">Test 1</employee> 
    <employee id="2" email="[email protected]" phone="6789">Test 2</employee> 
    <employee id="" email="" phone="">Free Desk</employee> 
</company> 

Ainsi, le ci-dessous est ce que je cherchais dans mon Javascript (Notez qu'il est plus de code ci-dessous/ci-dessus pour la lecture dans le fichier XML, etc. les deux alertes ont été des tests Je tentais - si elle est commentée dans je peux voir que la valeur 1 et 2 apparaît sur la page web, donc je pense qu'il est en train de lire l'amende XML

//alert(xmlObj.childNodes(0).getAttribute("id")) 
    //alert(xmlObj.childNodes(1).getAttribute("id")) 


    for (var i = 0; i < 4; i++) 
    { 

     **if (xmlObj.childNodes(i).getAttribute("id") == 1)** 
     { 

      stringData = stringData.replace("s1.gif", "s3.gif"); 

     } 
     else 
     { 

      stringData = stringData.replace("s1.gif", "s2.gif"); 
     } 
    } 

Cependant quand je cours, je reçois e. e erreur follwoing sur la ligne en gras. Erreur d'exécution de Microsoft JScript: 'xmlObj.childNodes (...)' est null ou n'est pas un objet. Maintenant je pense qu'il n'aime pas l'utilisation de i - j'espérais que pour la valeur 1 (ie - bureau 1 il deviendrait rouge (s1.gif étant remplacé par s3.gif) et pour les autres nombres bureau 0 et bureau 2 il devient rouge. quelqu'un at-il des idées de ce que je fais mal?

+0

Pourquoi ne pas utiliser jQuery, votre co de sera plus propre et plus facile à faire. –

Répondre

2

Vous avez seulement spécifié 3 enfants pour votre objet company. votre boucle for exécute 4 fois, les limites ainsi dépassement de l'objet childNodes au sein company .

Changez votre boucle for-for (var i = 0; i < xmlObj.childNodes.length; i++) et vous n'avez des exceptions lancées.