在函数内部创建变量,以供其他函数和字符串使用

时间:2012-10-04 20:11:15

标签: javascript jquery xml ajax jsonp

我有一个变量" mediaId"在我的控制台中声明它一直告诉我它是未定义的。我做错了什么?

var mediaId;

//load the XML!
$.ajax({
    type: "GET",
    url: '10461632.xml', // path to XML file
    dataType: "xml", 
    success: function(data) {
        $(data).find('Root').each(function(){

            $(this).find('Item').each(function(){
            mediaId = $(this).attr('videoMediaId'); // get the mediaId
            console.log(mediaId);

            });

        });
    }
});

在我的" jsonApiCall" var它告诉我它是未定义的。

var jsonpApiCall = "http://www.domain.com/search_media/?format=jason&school=" + vid_partner + "&media_id=" + mediaId + '';

非常感谢!

2 个答案:

答案 0 :(得分:0)

好吧,我会更确定你是否发布了完整的代码,但据我所知,你要求一个XML,它会在它到达时分配变量但在它到达之前你试图使用它:

  1. 你要求XML
  2. 您使用变量“mediaId”
  3. XML到达,然后分配“mediaId”。
  4. 为了防止这种情况,您不能在回调之外使用“mediaId”,使用它的所有内容都必须在回调中。

答案 1 :(得分:0)

您必须在jsonpApiCall赋值可用的范围中定义mediaId。 + mediaId必须在使用前获得其价值。

尝试更改行

var mediaId;

进入

var mediaId = "";

你现在有同样的错误吗?如果是,则在上限范围内移动mediaId定义。