Мое мнение немного отличается от других ответов.
Цель состоит не в том, чтобы скрыть параметры, а в том, чтобы отключить их (чтобы интерфейс был согласованным).
Мой сценарий:
У меня есть несколько вариантов выбора в форме, и когда пользователь выбирает параметр в одном из вариантов выбора, другие варианты выбора должны отключить этот параметр, и наоборот. Пользователь ограничен в выборе той же опции, которая уже выбрана. Обычно мы отключаем эту опцию, но для IE 7, который ее не поддерживает. Пользователь также получает возможность добавлять новые выборки.
Решение:
под нагрузкой:
Если браузер IE7, то при заполнении выбора и отключении уже выбранных параметров на других выборках я добавляю настраиваемый атрибут для параметра («data-ie7-disabled»), а также меняю цвет отключенных параметров в «#cccccc» (это стандартный цвет для отключенных опций). Это делает пользовательский интерфейс одинаковым во всех браузерах.
При изменении:
Я сохраняю предыдущий параметр в локальной переменной (это сохраняется в фокусе).
Когда пользователь пытается изменить опцию
Пользователь выбирает совершенно новый параметр, который не выбран ни в одном другом раскрывающемся списке. Затем я перебираю другие варианты выбора, меняю цвет и добавляю пользовательский атрибут к этой выбранной опции для других вариантов выбора.
Когда пользователь выбирает параметр, который уже выбран (параметр, который выделен серым цветом). Сначала я проверяю, есть ли у опции этот пользовательский атрибут. Если это так, то> я просто возвращаю вариант к предыдущему с сообщением об ошибке, говорящим: «Этот параметр уже выбран или BLAH BLAH».
Когда пользователь изменяет свою существующую опцию на совершенно новую опцию, которая не выбрана ни в одном другом раскрывающемся списке. Я снова перебираю все остальные опции выбора и удаляю цвет, а также пользовательский атрибут.
Надеюсь, это поможет.