2011-06-13 67 views
1

我有這個JSON的Ajax功能將參數添加到jQuery的Ajax調用

$.ajax({ 
    url: "?page=" + page, 
    dataType: "json", 
    success: function(data) { 
    $.each(data, function() { 
     $("#feed").append("<li>" + this.message + "</li>"); 
    }); 
    } 
}); 

不過,我想能夠給一個變量傳遞到它,所以this.message也可能是this.image,或this.link。我試過這樣做。

$.each(data, function() { 
     $("#feed").append("<li>" + myVar + "</li>"); 
    }); 

和設置myVar = 'this.picture',但它處理myVar的爲一個字符串,它沒有工作。我如何傳遞一個變量來實現我的目標?

在此先感謝!

回答

2

嘗試:

... + this[myVar] + ... 

其中myVar = 'picture',或任何其他領域它是要顯示。

當名稱本身是變量而不是文字標記時,這是訪問對象的命名屬性的標準語法。

+1

[括號標記(https://developer.mozilla.org/en/JavaScript/Reference/運營商/ Member_Operators#Bracket_notation)。 60%的時間,它每次都有效。 – 2011-06-13 14:29:23

+0

@Matt除了當你把它放在引號中...... ;-) – Alnitak 2011-06-13 14:30:20

+0

我還沒有醒過呢。 ...我也對其他答案感到驚訝 – 2011-06-13 14:30:36

-1

首先,您必須確保將「圖片」或「鏈接」傳遞到您返回的Json對象中。

然後嘗試用數據替換爲:data.picture或data.link。

+0

如果您將this.picture包裝在引號中,它也不會工作。 – 2011-06-13 14:32:23

-1

你要回調是參數化使用$。當

使用$.when

var m = $.ajax({ 
      url: "?page=" + page, 
      dataType: "json" 
     }); 

    var callback = function(link) 
    { 
     return function(data){ 
        alert(link); //Can access data and link here 
      } 
    } 

    $.when(m) 
     .then(callback(link));