W poniższym kodzie skonfigurowałem procedurę obsługi zmian w polu wyboru, aby pokazać i ukryć niektóre pytania uzupełniające na podstawie wartości wyboru.
Ponadto dla niektórych wartości wyboru wyświetlany jest dodatkowy komunikat.
Aby sprawdzić, czy muszę ukryć dodatkową wiadomość, zachowuję zmienną o nazwie Poprzedni. Po uruchomieniu procedury obsługi sprawdzam, czy poprzedni jest pusty lub czy rozmiar wynosi 0.
Byłoby miło zainicjować Previous do pustego obiektu JQuery, aby nie musieć wykonywać dodatkowego sprawdzania wartości null.
Wykonanie $ () zwraca obiekt o rozmiarze 1.
Czy istnieje sposób na utworzenie pustego obiektu Jquery?
// Inicjalizacja funkcji. $ (funkcja () { // Wstrzymaj poprzednio wybrany obiekt do wyboru typu konta. var Poprzedni = null; // Tutaj chciałbym zainicjować. // coś takiego jak Poprzedni = $ (); $ ("SELECT [name = 'AccountType']"). Change ( function () { // Ukryj poprzednią wiadomość, jeśli była. if (Poprzedni == null || Poprzedni.size ()> 0) { Previous.hide (); } // Pokaż wiadomość, jeśli zostanie znaleziona i zapisz ją jako poprzednią. Poprzedni = $ ("#" + this.value + "_ Msg"). Show (); // Uzyskaj pierwsze pytanie var FirstQuestion = $ (". FirstQuestion"); if (this.value === '') { FirstQuestion.hide (); }jeszcze{ // Ręcznie pokaż FirstQuestion. FirstQuestion.show (); } }); }
W najgorszym przypadku mógłbym zrobić coś takiego:
var Poprzedni = {size: function () {return 0; }};
ale to wydaje się przesada.
Źródło: api.jquery.com
źródło
Moja rada brzmi: nie rób tego w ten sposób. Jest na to dużo łatwiejszych sposobów. Rozważać:
Dużo łatwiej. Zasadniczo podaj klasy, aby wskazać, co pokazać i ukryć, a wtedy nie jest wymagane śledzenie. Alternatywą jest:
źródło
Spróbuj tego
Nie jestem dobrym programistą, ale daje ci pusty obiekt :))
źródło