2012-10-05 18 views
-1

如何從數組中刪除一個jQuery完成時如何刪除?我有:如何從javascript數組中刪除ajax完成時

myarray[key]=$.ajax({ 

}).done(function(response){ 

// work with response, 
// then delete myarray[key]; 

}); 

這不起作用:

var myvar=function(){ 
    if(myvar){ 
    alert(1); 
    } 
} 

好像報關必須完成檢查變量是否設置與否的事件,所以變量刪除變量中宣言不應該如何,超時?

+0

爲什麼不'刪除myArray的[關鍵]'?你的問題並不清楚。你可以發佈更多的代碼,以便我們不必在黑暗中拍攝(這裏有很多可能的問題)? –

回答

0

這取決於myarray是否是數組或對象。如果它是一個對象,你可以做

delete myarray[key]; 

但是,如果它是一個數組,那麼它會更復雜一點。約翰Resig的寫了一篇關於數組元素去除here

如果你想這樣做更簡單,而且它是一個數組,你可以用

myarray[key] = undefined; 

刪除,但你要注意,myarray沒有得到任何當你這樣做的時候更小。

$.ajax返回一個Deferred對象,.done()返回一個不同的Deferred對象。理想情況下,你會做到以下幾點:

myarray[key]=$.ajax({ 

}); 
myarray[key].done(function(response){ 
// work with response, 
// then delete myarray[key]; 
}); 
+0

代碼是否會在聲明的相同數組鍵中的ajax .done處正確執行?我認爲它不起作用,與我發佈的不適用於問題的內容有關。 –

+0

對不起,我沒有解決,我更新了我的答案。 – saml