0

我在控制台中声明了一个变量“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 jsonpApiCall = "http://www.domain.com/search_media/?format=jason&school=" + vid_partner + "&media_id=" + mediaId + '';

非常感谢!

4

2 回答 2

0

好吧,如果您发布了完整的代码,我会更加确定,但据我了解,您要求一个 XML,该 XML 将在变量到达时分配变量,但在它到达之前您正在尝试使用它:

  1. 您要求 XML
  2. 您使用变量“mediaId”
  3. XML 到达,然后分配“mediaId”。

为了防止这种情况,您不能在回调之外使用“mediaId”,使用它的所有内容都必须在回调内部。

于 2012-10-04T20:33:57.337 回答
0

您必须在可用于 jsonpApiCall 分配的范围内定义 mediaId。+ mediaId 必须在使用前获取其值。

换行试试

var mediaId;

进入

var mediaId = "";

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

于 2012-10-04T20:38:02.893 回答