Как скрыть элементы optgroup/option?

Есть ли способ скрыть option или optgroup HTML-элементы? Я пробовал вызывать hide() в jQuery, а также использовать обычный Javascript для установки style.display='none'.

Он работает в 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>

person DisgruntledGoat    schedule 28.04.2010    source источник
comment
В случае, если R0MANARMY верен, и вы можете просто отключить их, $('optgroup[label=Swansea]').attr('disabled', true), похоже, работает нормально.   -  person Max Shawabkeh    schedule 28.04.2010
comment
@MaxShawabkeh Атрибут disabled для <option> работает только в IE8 и выше.   -  person Cobra_Fast    schedule 02.09.2013


Ответы (1)


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

Сделайте еще один выбор, например.

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

тогда спрячь это

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

Если вы хотите «скрыть» какую-либо группу опций, просто «припаркуйте» ее в этом скрытом выборе.

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

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

person Vlado Tovarnak    schedule 05.03.2012
comment
Другим способом было бы просто сохранить данные в объекте JSON, которым вы можете манипулировать, вместо скрытого выбора. - person radtek; 26.05.2014