Var i égale à quoi une fois que j = 3 dans une boucle

cs_jimmyhendrix Messages postés 34 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 26 mars 2013 - 18 mars 2011 à 16:24
cs_jimmyhendrix Messages postés 34 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 26 mars 2013 - 19 mars 2011 à 00:14
Salut !

J'ai un problème de boucle. En gros, j'ai un fichier xml qui représente mon array dans mon code :

var xmlDoc=null;
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET","test.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;
var x=xmlDoc.getElementsByTagName("post");


et dans mon fichier xml j'ai des tags qui ressemble à ça :




et voici justement mon code en boucle :

var iCount = 0;
var iVal;
for(var i = 0; i < x.length; i++){
  iVal= x[i].getAttribute("categorie");
  if(iVal == "video"){ iCount++;}
}


Donc, ma boucle calcul le nombre de tag qui ont l'attibut categorie=video et ça fonctionne très bien. Par contre, j'aimerais trouver un moyen de savoir la variable i est égale à quoi lorsque iCount est égale à 3. Plus concrètement, j'aimerais savoir au bout de combien de tag analysé ma fonction réussit à trouver 3 tags de catégorie vidéo.

Est-ce que quelqu'un pourrait m'aider ?

2 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
18 mars 2011 à 18:46
il faut juste rajouter une condition dans la boucle

var iCount = 0;
var iVal;

for(var i = 0; i < x.length; i++){
  iVal= x[i].getAttribute("categorie");
  
if(iVal == "video"){ iCount++;}

if(iCount == 3){ alert(i);}

}
0
cs_jimmyhendrix Messages postés 34 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 26 mars 2013 1
19 mars 2011 à 00:14
Étrangement, il me fait l'alert deux fois avec 2 chiffres différents... Mais bon, ça y est tout de même !

J'ai sorti la valeur de ma boucle et ça fonctionne à merveille !

var iCount = 0;
var iVal;

for(var i = 0; i < x.length; i++){
  iVal= x[i].getAttribute("categorie");
  
if(iVal == "video"){ iCount++;}

if(iCount 3){ var reponse i}

}

alert(reponse);


Merci !
0
Rejoignez-nous