Jquery:删除选择列表中的先前数据

时间:2010-08-03 15:30:38

标签: jquery json

我有以下问题。

我想在用户选择特定的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>");
   }
  }
 });
}

谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您需要先清除#scat列表,然后用新数据填充它。

您可以使用下一个语句执行此操作:

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

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

更多信息:jQuery remove

答案 1 :(得分:1)

您可以通过调用empty() method来清除元素的内容,如下所示:

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

顺便说一下,当您按ID选择元素时,除了ID选择器(例如#scat)之外,您不需要任何其他内容。
由于ID是(或应该)唯一,因此您不需要任何其他内容 jQuery优化了“纯”ID选择器,因此#scat将比任何其他选择器更快。