2010-02-03 7 views
0

J'essaie de faire une requête get à partir de javascript, avec une fonction appelée geturl. Donc, si je prépare mes requêtes et que je les ajoute à un tableau, et lance en boucle qui exécute une seule requête. comment peut faire cela sans boucle for? peut-être faire quelque chose avec le tableau?GET dans une boucle For ne fait qu'une seule exécution

for (var i=0; i<urls.length; i++) 
     { 
      url[i] = urls[i].value; 
     } 
geturl(url); 
+0

Il ne semble pas que vous ayez posté un code pertinent. Ce n'est pas votre vraie boucle, et vous n'avez pas posté 'geturl' ... – Kobi

+0

Désolé je ne peux pas poster le code pour geturl – streetparade

+0

... mais, ça ne marche pas bien. Oh, et pourquoi es-tu encore contre les boucles 'for'? Ils sont vraiment cool. – Kobi

Répondre

1

si vous utilisez un framework javascript que vous pourriez faire quelque chose le long des lignes de:

var collection; 
$(urls).each(function(v){//add to collection}); 
geturl(collection); 

jQuery each documentation

+0

Cela fonctionnerait, mais je n'arrive pas à comprendre qu'il veut même se débarrasser de la boucle for. La méthode $ .each() utilise une boucle for de toute façon. – Graza

+0

Je ne comprends pas vraiment pourquoi la boucle doit aller soit mais c'est la seule interprétation que je pourrais trouver. – gum411

1

Vous pouvez utiliser un cadre tel que le prototype ou jQuery qui vous donnent un each() méthode à utiliser sur le tableau, mais en interne, il serait probablement juste utiliser une boucle for de toute façon, donc il n'y a pas vraiment de point à ce sujet.

Sinon, si cela est parce que vous utilisez la boucle dans tous les sens et que vous voulez avoir le code réutilisable au lieu, pourquoi ne pas fixer une méthode buildUrl à votre objet urls (qui fait une boucle interne et renvoie votre tableau url)

Ou modifier geturl() il regarde la propriété .value de l'argument plutôt que d'attendre chaque élément de url[] être une chaîne, puis passer urls[] pour geturl (par exemple geturl(urls); plutôt que de passer dans le tableau de chaînes url

1

Un coup total dans l'obscurité, si la question est

Pourquoi geturl n'est-il appelé qu'une seule fois?

Ensuite, la réponse pourrait être: -

for (var i=0; i<urls.length; i++) 
{ 
    url[i] = urls[i].value; 
    geturl(url[i]); 
} 

Cependant il ne semble pas!

+0

J'ai essayé que plusieurs fois il abandonne et exécute juste une demande – streetparade

+0

Cela suggère que votre problème réside dans l'implémentation de geturl. Postez le code! – gum411

Questions connexes