2010-04-28 80 views
29

有没有办法隐藏optionoptgroup HTML元素?我试过在jQuery中调用hide(),并且还使用常规的Javascript来设置style.display='none'如何隐藏optgroup/option元素?

它适用于Firefox,但不适用于任何其他浏览器。实际上从DOM 中删除它们的确是的工作,所以也许有一种方法可以在每个DOM元素被删除时保存它们,并将它们重新插入到同一个地方?

我的HTML是这样的:

<select name="propsearch[area]" id="propsearch_area"> 
    <option value="0">- Any -</option> 
    <optgroup label="Bristol"> 
     <option value="Hotwells">Hotwells</option> 
     <option value="Montpelier">Montpelier</option> 
    </optgroup> 
    <optgroup label="Cardiff"> 
     <option value="Heath">Heath</option> 
     <option value="Roath">Roath</option> 
    </optgroup> 
    <optgroup label="Exeter"> 
     <option value="Pennsylvania Road">Pennsylvania Road</option> 
     <option value="Lower North Street">Lower North Street</option> 
    </optgroup> 
    <optgroup label="Swansea"> 
     <option value="Brynmill">Brynmill</option> 
     <option value="Uplands">Uplands</option> 
    </optgroup> 
</select> 
+0

如果R0MANARMY正确无误,只需禁用它们,'$('optgroup [label = Swansea]')。attr('disabled',true)'似乎工作正常。 – 2010-04-28 17:29:57

+0

@MaxShawabkeh'

回答

11

我想,这种解决方案对我的作品罚款:

进行其他选择如

$("#footer_canvas").after('<select id="parkingLot"></select>'); 

然后把它隐藏

$("#parkingLot").hide(); 

当你想 '隐藏' 一些OPTGROUP,只是 '暂停' 它这个隐藏选择。

$('#VehicleVehicleCategoryId optgroup[label="kategorie L"]').appendTo("#parkingLot"); 

您可以使其可见的相同方式。 这只是我的解决方案的片段,对我来说工作正常。

+1

另一种方法是将数据存储在可以操作的JSON对象中,而不是隐藏的选择。 – radtek 2014-05-26 19:43:19