Każde wywołanie metody w jQuery jest zapakowane w funkcję .each
, więc sprawdzenie, czy dany element istnieje, zwykle nie jest konieczne - nie będzie żadnych iteracji wywoływanej funkcji, jeśli zestaw jest pusty, nie działa po cichu. Podany przykład jest tego dobrym przykładem, nie ma żadnej szkody ani kary za wydajność po prostu dzwoniąc pod numer $('#progressbar').progressbar()
.
Kiedy zrobić chcesz zrobić, prawdopodobnie dlatego, że jesteś manipulowania DOM lub jakiejś kosztownej operacji w zależności od obecności elementu, upewnij się buforować połączenia, szczególnie jeśli jest to kompleks selektor:
specialThings = $('section .special')
if specialThings.length > 0
doStuffWith specialThings
lub alternatywnie, wykorzystując bezpieczeństwa var coffeescript za:
if (specialThings = $ 'section .special').length
doStuffWith specialThings
Czy jQuery? –
Myślę, że najpierw dostaniesz błąd, nie? – thescientist
Jest konwertowany z Coffeescript na prosty javascript. Domyślam się, że błąd nie pojawia się, ponieważ to zdarzenie zostało załadowane bez interakcji użytkownika (patrz odpowiedź gabrielhilal poniżej). –