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!
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas entièrement sûr de l'objectif général de la fonction, mais vous pouvez toujours le faire:
L'instruction de retour que vous avez est coincé à l'intérieur de la fonction, de sorte qu'il ne retournera pas à partir de l'extérieur de la fonction. Vous avez juste besoin d'un peu plus de code:
return false;
à l'intérieur de l'instruction si à la pause deeach()
après la cession.