为数据元素设置一个变量

Set a variable to the data element

本文关键字:一个 变量 数据 元素 设置      更新时间:2023-09-26

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

我有一个定义变量的函数集:function flickr_feed(flickrID, flickr_count, photo_size) {,其中所讨论的变量是photo_size

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

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

然后将getSize转储到ajax url:

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变量设置为元素。

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。但如果我手动设置photoSrcthis.url_sq,这是好的。只是不知道如何让这里的变量以同样的方式工作。

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

EDIT:Ajax是有限的。但是根据我的收集,这个指的是返回的数据。因此,从这个意义上说,photoSrc返回未定义,因为它认为getSize是数据中的结果,而它不是。那么,该如何编写才能使用实际的getSize值呢?

EDIT:这是脚本的粘贴目录:http://pastebin.com/KGCUgAet

在你的ajaxRequest

var originalContext = this;
$.ajax({

success: function() {
     $.each(data.photos.photo, function() {
          originalContext // Available here
          this  // Current object under iteration
     });
}

photoSrc变量整理如下:var photoSrc = this[getSize];

感谢Sushanth确认我关于这个和返回数据的问题。这帮我弄明白了