Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
JQuery可以';t返回xml值_Jquery_Xml - Fatal编程技术网

JQuery可以';t返回xml值

JQuery可以';t返回xml值,jquery,xml,Jquery,Xml,我有一个简单的xml <?xml version="1.0"?> <library> <item name="box_shelf"> <imageback src="images/box_shelf_color.png"/> <outline src="images/box_shelf_outline.png"/> <sku> <wh sk

我有一个简单的xml

<?xml version="1.0"?>
<library>
    <item name="box_shelf">
        <imageback src="images/box_shelf_color.png"/>
        <outline src="images/box_shelf_outline.png"/>
        <sku>
            <wh sku="4696424171" />
            <ch sku="4696424179" />
            <choc sku="4696425863" />
            <ma sku="4696424175" />
        </sku>
    </item>
</library>
控制台日志可以使用

******images/box_shelf_outline.png
******images/box_shelf_color.png
但是当我试图将值返回到变量中时,我得到了未定义的值

var image_outline = parseImageXml("box_shelf","outline");
var image_back = parseImageXml("box_shelf","imageback");
console.log(image_outline+":"+image_back);

undefined:undefined

任何洞察都会很好,谢谢

您在
每个
回调中返回值,因此外部函数的返回值仍然是
未定义的
。创建一个数组,将值推入回调内部,然后在
每个
外部返回数组

function parseImageXml(mainNode, targetNode) {
    var targets = [];
    $(libraryXML).find('item').each(function() {

        if ($(this).attr('name') == mainNode) {
            var $temp = $(this).find(targetNode).attr('src');
            console.log("******" + $temp);
            targets.push($temp);
        }

    });
    return targets;
}

var image_outline = parseImageXml("box_shelf","outline")[0];
var image_back = parseImageXml("box_shelf","imageback")[0];
console.log(image_outline+":"+image_back);

您没有从parseImageXml函数返回任何内容。尝试更改为以下内容:

       function parseImageXml(mainNode,targetNode) {
          var $temp; //Declare your scope variable.      
          $(libraryXML).find('item').each(function() {

            if($(this).attr('name') == mainNode) {
                 $temp = $(this).find(targetNode).attr('src');// Assign to the scoped variable
                 console.log("******"+$temp);
                return false;  //Exit your for each loop
            }

        });
        return $temp;
       }
       function parseImageXml(mainNode,targetNode) {
          var $temp; //Declare your scope variable.      
          $(libraryXML).find('item').each(function() {

            if($(this).attr('name') == mainNode) {
                 $temp = $(this).find(targetNode).attr('src');// Assign to the scoped variable
                 console.log("******"+$temp);
                return false;  //Exit your for each loop
            }

        });
        return $temp;
       }