jQuery:如何在使用detach函数后重置下拉字段

时间:2012-12-20 14:21:56

标签: jquery

我使用下面的代码隐藏我的下拉字段中的某些选项。

为什么当我点击第一个单选按钮时,它可以工作,但是对其他人不起作用,然后意识到我需要在点击另一个收音机后将下拉菜单重置为原始选项按钮。

我的应用程序有一个单选按钮组,您单击该组多个无线电,并根据单选按钮的值,运行下面的一个IF语句。

使用分离功能后,如何将下拉字段重置为原始内容或完整内容?

我试过这些,但它们不起作用:

$('#3547').find('option:first').attr('selected', 'selected'); 
document.getElementById('3547').selectedIndex = 0; 
document.getElementById('3547').reset();

代码:

var oldoptions = []; 
 if (typeVal == "Art")
         {      
             $('fieldset#section-417').show();
 thisval = 'Art -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}
 if (typeVal == "Chrome")
         {      
             $('fieldset#section-417').show();
 thisval = 'Chrome -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}
 if (typeVal == "Web")
         {      
             $('fieldset#section-417').show();
 thisval = 'Web -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}

重新澄清所需的功能:

我希望在我过滤掉一些之前恢复最初在下拉列表中的所有选项,因此对于ex:on load,下拉列表包含12个选项。选中“ART”收音机时,下拉列表中仅显示4个项目。当我点击另一个单选按钮“Chrome”时,我希望原始的12个选项恢复到下拉列表,因此过滤器代码可以再次运行。

2 个答案:

答案 0 :(得分:1)

不确定周围的代码,但是从这段代码中你似乎总是将一个空数组分配给oldoptions,然后将其附加到选择(即你实际上没有附加任何内容)。

答案 1 :(得分:0)

要选择您应该使用的选项:

.attr('selected', true)

CSS ID不应以数字开头。也许这会让你的浏览器感到困惑。