我有以下问题。
我想在用户选择特定的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>");
}
}
});
}
谢谢你的帮助。
答案 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
将比任何其他选择器更快。