Jquery fonction de la valeur de retour

J'ai créé une fonction pour itérer sur une UL/LI. Cela fonctionne parfaitement, mon problème est de retourner de la valeur à une autre variable. Est-ce même possible? Quelle est la meilleure méthode pour cela? Merci!

function getMachine(color, qty) {
    $("#getMachine li").each(function() {
        var thisArray = $(this).text().split("~");
        if(thisArray[0] == color&& qty>= parseInt(thisArray[1]) && qty<= parseInt(thisArray[2])) {
            return thisArray[3];
        }
    });

}

var retval = getMachine(color, qty);
  • C'est possible et c'est ainsi que je le ferais. N'êtes-vous pas d'obtenir une valeur de retour?
  • Ton code semble correct, êtes-vous en mesure d'exécuter Firebug et de voir si la Console listes de rien?
  • de retour ne fonctionne pas de cette façon en $.chaque. retour juste à la sortie de la boucle foreach.
  • Cela ne fonctionne pas car le rendement thisArray[3] renvoie uniquement à partir de l' .chacun() fonction interne, il n'a pas de retour de la getMachine fonction. Comme d'autres affiches ont montré, vous devez définir thisArray[3] pour une variable locale et return(false) à partir de la fonction interne à l'arrêter .chacun() itération et ensuite, vous pouvez revenir intérieure variable de getMachine.
  • Le retour doit effectivement être faux ou vrai pour un $.chacun(). Là où le faux est comme une pause et de vrai, c'est comme un continuer.
  • que faire si Votre code n'est pas aller dans l'instruction if? Vous devez gérer les autres cas. pas tous les chemins de contrôle de retourner une valeur. voir Milimetric réponse
  • Pour l'enregistrement, la raison pour laquelle je n'ai pas de retour faux/vrai est d'abord parce que si l'instruction a seulement 1 correspondance possible. Si elle l'a fait pour le retour, il n'était pas nécessaire de poursuivre plus loin. Merci encore pour l'ensemble de l'aide de tout le monde!

InformationsquelleAutor Stephen S. | 2011-07-28