Подтвердить что ты не робот

Возвращаемое значение функции JQuery

Я создал функцию для итерации через UL/LI. Это отлично работает, моя проблема возвращает значение другой переменной. Возможно ли это? Какой лучший метод для этого? Спасибо!

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);
4b9b3361

Ответ 1

Я не совсем уверен в общей цели функции, но вы всегда можете это сделать:

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);

Ответ 2

Возвращаемый оператор, который у вас есть, застревает во внутренней функции, поэтому он не возвращается из внешней функции. Вам просто нужно немного больше кода:

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);