2010-08-03 54 views
1

我有以下問題。Jquery:刪除選擇列表中的以前的數據

我想更新我的子類別選擇列表,當用戶選擇一個特定的leadcategory並在其他選擇列表中顯示子類別。

問題是,我不知道當我選擇另一個leadcategory時,我的上一個子類別必須刪除並填充新的數據,取決於我選擇的leadcategory。

現在我有下面的代碼。

我分析的數據是一個JSON編碼誰的樣子:

Website.Config = {"categorieen":{"1":{"1":"Navullingen ","2":"Potloden"},"2":{"3":"Navullingen","6":"potloden","7":"testSubcategorie"}}} 


    function onChangeSubcategorie(){ 

categorieen = Website.Config.categorieen; 

$("form#overviewFilter select#cat").change(function() { 
    var hoofdCategorie = $(this).val(); 
    var subcategorieen = categorieen[hoofdCategorie]; 

    for(var c in subcategorieen) { 
    var tekst = subcategorieen[c]; 

    if(hoofdCategorie == 1) { 
    $('form#overviewFilter select#scat').append("<option value="+tekst+">"+tekst+"</option>"); 
    }else if(hoofdCategorie == 2) { 

    $('form#overviewFilter select#scat').append("<option value="+tekst+">"+tekst+"</option>"); 
    } 
    } 
}); 
} 

謝謝你的幫助。

回答

3

您需要先清除#scat列表,然後用新數據填充它。

爲此,您可以使用下一個語句:

$('form#overviewFilter select#scat').empty(); 

$('form#overviewFilter select#scat').find('option').remove(); 

的更多信息:jQuery remove

+0

TNX的隊友,我會嘗試,TNX的快速反饋。 – Navid 2010-08-03 21:18:31

1

您可以通過調用empty() method清除元素的內容,就像這樣:

$('#scat').empty(); 

順便說一句,當你選擇由ID的元素,你不需要任何東西,但ID選擇器(例如, #scat)。
由於ID是(或者是應該是)唯一,您不需要其他任何東西。
jQuery針對「純」ID選擇器進行了優化,因此#scat將比任何其他選擇器都快。