2013-05-28 81 views
0

我有一個列表如下;jQuery remove()無法正常工作

<ul id="toDB"> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
    <li>Item 4</li> 
</ul> 

我在刪除<li>項目使用以下jquery函數;

$('#toDB > li').click(function(){ 
    $(this).remove(); //I also tried with detach(); 
}); 

刪除某些項目後,我存儲在一個jQuery變量的其餘項目這我然後保存到數據庫中。

var sendThis = $('#toDB').html(); 

從數據庫中檢索項目後,我仍然看到列表中的已刪除項目。我的代碼中是否有錯誤?

更新:

我的代碼工作很好,我可以在項目刪除的Chrome開發者工具中看到。但是,從數據庫中檢索項目後,刪除的項目再次出現。

請幫我解決這個問題。

謝謝。

+1

你要更新'sendThis'點擊功能內的每個點擊後得到改變HTML,如[**這個小提琴**](http://jsfiddle.net/NYkRX/2/) – adeneo

+0

我確實有保存按鈕,所以排序列表後,保存到varibale sendThis將發生在我登錄保存按鈕時。 – user1915190

+2

您的代碼按原樣運行(http://jsfiddle.net/nABTb/)。問題在於別處。 –

回答

0

那麼這是bizzare ....它應該工作。根據您共享的代碼部分,移除操作已經與您的代碼一起工作。

您確定在將其發送到數據庫之前,元素的最新狀態保持不變或其他內容正在傳遞給數據庫。

在將文件發送到數據庫之前,只需檢查列表是否保存了您需要的正確值。

alert($('#toDB').html());

0

它也可能取決於以在什麼水平,你刪除li標籤。 雖然沒有什麼bassically你錯了jQuery的線條......我相信

$('li','#toDB').click(function(){ 
    $(this).remove(); 
}); 

比....

$('#toDB > li').click(function(){ 
    $(this).remove(); 
}); 

但如果我沒有錯,他們服務於同一目的....

還應注意jQuery不會對動態加載的數據自動處理click(function(){}) ...

如果數據來自一個動態的酸味e ...您可以嘗試:

 $('li','#toDB').live('click',function(){ 
$(this).remove(); 
}) 

希望這一工程....