web-dev-qa-db-fra.com

Valeur de retour de la fonction Jquery

J'ai créé une fonction pour parcourir une UL/LI. Cela fonctionne parfaitement, mon problème renvoie la valeur à une autre variable. Est-ce seulement 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);
28
Stephen S.

Je ne suis pas tout à fait sûr du but général de la fonction, mais vous pouvez toujours le faire:

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

var retval = getMachine(color, qty);
43
Alex Turpin

L'instruction de retour que vous avez est bloquée dans la fonction interne, elle ne sera donc pas renvoyée par la fonction externe. Vous avez juste besoin d'un peu plus de code:

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

var retval = getMachine(color, qty);
15
Milimetric