2011-05-30 43 views
1

我有一個ajaxcheck框。選中時,會向服務器發送AJAX請求,獲取數據並修改當前的ul使用jQuery:刪除,添加和動畫李ul

$('#event_filters').change(function() { 
//#$('spinner').show(); 
    $.ajax({ 
     url: "/search/filters.json?search=13", 
     success: function(data){ 
     $("#results").children('li').each(function(){ 
     $(this).text('blah'); 
     }); 
     alert('came here'+data); 
     //how to modify current ul to remove old li's and add new ones 
     }, 
    }); 
}); 

我已經看到了一些其他網站這個功能,我相信他們添加動畫以及消除老李的和增加新的似乎真的平滑過渡。

回答

5

你需要解釋一下老李和新李的含義。另外,請顯示可變數據的內容。

假設,由老李的你的意思是所有的現有裏的,你可以使用

$("#ulToRemoveFrom li").remove(); 

如果你只想刪除一些LIS刪除它們,也許他們有他們一些類,或者一些值或一些其他財產。結賬http://api.jquery.com/category/selectors/瞭解如何選擇您想要的元素,然後調用刪除它們。

,如果你想動畫的去除,使用這裏提到http://api.jquery.com/category/effects/

樣的影響之一:(http://api.jquery.com/animate/

$("#ulToRemoveFrom li.offendingClass").animate({ 
     opacity: 0.25, 
     left: '+=50', 
     height: 'toggle' 
    }, 5000, function() { $(this).remove();}); 

........

http://api.jquery.com/category/manipulation/有許多函數爲dom添加一個新元素。

假設數據是JSON數組["text 1", "text 2", "text 3"],你可以做以下...

var items = JSON.parse('["text 1", "text 2", "text 3"]'); 

var $ul = $("#ulToRemoveFrom"); 
$.each(items, function(index, item) { 
    $ul.append('<li>' + item + '</li>'); 
}); 

結帳http://jsfiddle.net/5kxbr/2/ ......玩它,或者更好的是叉和修改,以滿足您的問題.. 。