将变量设置为数据元素

时间:2013-05-16 19:54:20

标签: javascript ajax variables

设置Flickr脚本...在我的ajax成功函数中,如何将var添加到实际的 this 元素中?我知道这个 $(this)代表不同的东西。很难写出来,所以我将使用我的代码示例来更好地解释。

我的函数集包含已定义的变量:function flickr_feed(flickrID, flickr_count, photo_size) {,其中有问题的变量是photo_size

使用条件从getSize中的可读格式设置photo_size变量:

if (photo_size == 'square') var getSize = 'url_sq';

然后我将getSize转储到ajax网址:

url: 'http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' + flickrAPI + '&user_id=' + flickrID + '&per_page=' + flickr_count + '&page=0&extras=' + getSize + '&format=json&jsoncallback=?',

我在成功函数中遇到的问题是将getSize var设置为元素。

success: function(data) {
    $.each(data.photos.photo, function() {
        var photoID = 'http://www.flickr.com/photos/' + flickrID + '/' + this.id;
        var photoSrc = this.getSize;
        console.log(photoSrc);
    });
}

在此结果中,photoSrc返回undefined。但是,如果我手动将photoSrc设置为this.url_sq,那就没关系了。只是无法弄清楚如何让变量在那里以相同的方式工作。

为可怕的解释道歉。如果它有意义,任何帮助将不胜感激。

编辑:我对$ .ajax的体验有限。但是从我收集的内容来看,这个指的是返回的数据。所以在这个意义上,photoSrc返回undefined,因为它认为getSize是数据中的结果,而不是。那么如何编写它以便使用实际的getSize值?

编辑:以下是脚本的粘贴框:http://pastebin.com/KGCUgAet

2 个答案:

答案 0 :(得分:1)

ajaxRequest

之前缓存您的内容
var originalContext = this;
$.ajax({


success: function() {
     $.each(data.photos.photo, function() {

          originalContext // Available here
          this  // Current object under iteration
     });
}

答案 1 :(得分:0)

通过编写photoSrc var来对其进行排序:var photoSrc = this[getSize];

感谢Sushanth确认我关于的问题以及返回的数据。这有助于解决这个问题。