Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery函数返回值_Javascript_Jquery_Return Value - Fatal编程技术网

Javascript Jquery函数返回值

Javascript Jquery函数返回值,javascript,jquery,return-value,Javascript,Jquery,Return Value,我创建了一个函数来迭代UL/LI。这非常有效,我的问题是将值返回到另一个变量。这可能吗?最好的方法是什么?谢谢 function getMachine(color, qty) { $("#getMachine li").each(function() { var thisArray = $(this).text().split("~"); if(thisArray[0] == color&& qty>= parseInt(thisAr

我创建了一个函数来迭代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);
功能获取机器(颜色、数量){
$(“#getMachine li”)。每个(函数(){
var thisArray=$(this.text().split(~);

如果(thisArray[0]==color&&qty>=parseInt(thisArray[1])&&qy我不能完全确定函数的一般用途,但您始终可以这样做:

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);
功能获取机器(颜色、数量){
var-retval;
$(“#getMachine li”)。每个(函数(){
var thisArray=$(this.text().split(~);

如果(thisArray[0]==color&&qty>=parseInt(thisArray[1])&&qy您的返回语句被卡在内部函数中,因此它不会从外部函数返回。您只需要多一点代码:

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);
功能获取机器(颜色、数量){
var returnValue=null;
$(“#getMachine li”)。每个(函数(){
var thisArray=$(this.text().split(~);

如果(thisArray[0]==颜色和数量>=parseInt(thisArray[1])&&QTY这是可能的,我就是这么做的。您没有得到返回的值吗?您的代码似乎正确,您是否能够运行Firebug并查看控制台是否列出了任何内容?返回在$中不起作用。each.return只会退出foreach循环。这不起作用,因为return thisArray[3]仅从.each()返回内部函数,它不会从getMachine函数返回。如其他海报所示,您需要将thisArray[3]设置为局部变量,并从内部函数返回(false)以停止.each()迭代,然后您可以从getMachine返回该内部变量。对于$.each()返回值实际上应该为false或true。其中false类似于中断,true类似于继续。您需要在if语句中添加
return false;
以在赋值后从
each()中断。