В следующем коде я установил обработчик изменений в поле выбора, чтобы показать и скрыть некоторые последующие вопросы на основе значения выбора.
Далее, для некоторых значений выбора появляется дополнительное сообщение, которое отображается.
Чтобы проверить, нужно ли мне скрывать лишнее сообщение, я сохраняю переменную с именем Previous. После выполнения обработчика я проверяю, имеет ли значение Previous значение null или размер равен 0.
Было бы неплохо инициализировать Previous до пустого объекта JQuery, чтобы не выполнять дополнительную проверку для null.
Выполнение $() возвращает объект размером 1.
Есть ли способ создать пустой объект JQuery?
//Init function. $(function(){ //Hold the previously selected object for the account type selection. var Previous = null; //Here is where I would like to initialize. //something like Previous = $(); $("SELECT[name='AccountType']").change( function () { //Hide Previous message if there was one. if(Previous == null || Previous.size() > 0){ Previous.hide(); } //Show the message if found and save it as previous. Previous = $("#"+this.value+"_Msg").show(); //Get fisrt question var FirstQuestion = $(".FirstQuestion"); if(this.value === ''){ FirstQuestion.hide(); }else{ //Manually show FirstQuestion. FirstQuestion.show(); } }); }
В худшем случае я мог бы сделать что-то вроде этого:
var Previous = { size : function () { return 0; } };
но это кажется излишним.