Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 匿名子函数的返回值_Javascript_Jquery - Fatal编程技术网

Javascript 匿名子函数的返回值

Javascript 匿名子函数的返回值,javascript,jquery,Javascript,Jquery,在我的代码中,我调用一个函数并期望返回一个值 var spriteimageload=tryLoadSpriteImage(数据,hrefObj) 我期望var spriteImageLoaded=hrefObj.div。但是它是未定义的。 如何正确返回值?尝试 tryLoadSpriteImage = function(data,hrefObj){ return $(data).each(function(){ if ($(this)[0].nodeNa

在我的代码中,我调用一个函数并期望返回一个值

var spriteimageload=tryLoadSpriteImage(数据,hrefObj)

我期望
var spriteImageLoaded
=
hrefObj.div
。但是它是
未定义的
。 如何正确返回值?

尝试

tryLoadSpriteImage = function(data,hrefObj){
      return $(data).each(function(){
              if ($(this)[0].nodeName == "STYLE")
              {
                  var styleTxt = $(this)[0].innerHTML
                  //console.log(styleTxt);
                  var urlImage = styleTxt.match(/\((.*)\)/g)[0].replace('(','').replace(')','');
                  //console.log("url image loaded:"+urlImage);
                  hrefDivInsertImageUrl(hrefObj, urlImage);
                  saveImage(hrefObj.href, urlImage);
                  return hrefObj.div;
              }
          });
}

在jQuery
的回调函数中调用
return
,每个
相当于标准for循环的中断。因此,您实际上要做的是迭代
数据的每个条目,并在第一个具有节点名“STYLE”的条目之后中断,而不从函数的角度返回任何内容

如果要返回
hrefObj.div
,应使用:

tryLoadSpriteImage = function(data,hrefObj){
    $(data).each(function(){
        if ($(this)[0].nodeName == "STYLE")
        {
            var styleTxt = $(this)[0].innerHTML
            //console.log(styleTxt);
            var urlImage = styleTxt.match(/\((.*)\)/g)[0].replace('(','').replace(')','');
            //console.log("url image loaded:"+urlImage);
            hrefDivInsertImageUrl(hrefObj, urlImage);
            saveImage(hrefObj.href, urlImage);
            return; //exits the each loop
        }
    });
    return hrefObj.div; //returns the div
}

您能提供一些带有示例HTML的JSFIDLE吗?
tryLoadSpriteImage = function(data,hrefObj){
    $(data).each(function(){
        if ($(this)[0].nodeName == "STYLE")
        {
            var styleTxt = $(this)[0].innerHTML
            //console.log(styleTxt);
            var urlImage = styleTxt.match(/\((.*)\)/g)[0].replace('(','').replace(')','');
            //console.log("url image loaded:"+urlImage);
            hrefDivInsertImageUrl(hrefObj, urlImage);
            saveImage(hrefObj.href, urlImage);
            return; //exits the each loop
        }
    });
    return hrefObj.div; //returns the div
}