2010-04-28 3 views
29

Есть ли способ скрыть option или optgroup HTML-элементы? Я попытался позвонить hide() в jQuery, а также с помощью обычного 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)', похоже, работает нормально. –

+0

@MaxShawabkeh Атрибут 'disabled' на'

ответ

11

Я понял, что это решение работает для меня:

сделать другой выбор, например,

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

скрыть его

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

Если вы хотите 'спрятать' некоторые OPTGROUP, просто 'парк' его в этом скрытый выбор.

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

То же самое можно сделать видимым. Это всего лишь фрагменты моего решения, которые отлично подходят для меня.

+1

Другим способом было бы просто сохранить данные в объекте JSON, с которым вы можете манипулировать вместо скрытого выбора. – radtek

Смежные вопросы