Cada llamada a un método en jQuery está envuelta en una función .each
, por lo que no es necesario verificar si existe un elemento; no habrá iteraciones de la función llamada si el conjunto está vacío, falla silenciosamente. El ejemplo que se da es un buen ejemplo de eso, no hay ninguna penalización por daños o rendimiento simplemente llamando al $('#progressbar').progressbar()
directamente.
Cuando hace quieren hacer eso, probablemente debido a que está manipulando el DOM o haciendo alguna operación costosa en función de la presencia de un elemento, asegúrese de guardar en caché el llamado, especialmente si se trata de un selector complejo:
specialThings = $('section .special')
if specialThings.length > 0
doStuffWith specialThings
o, alternativamente, tomando ventaja de la seguridad de CoffeeScript var:
if (specialThings = $ 'section .special').length
doStuffWith specialThings
Es que jQuery? –
, creo que primero obtendrías un error, ¿no? – thescientist
Se convierte de Coffeescript a Javascript directo. Supongo que el error no aparece porque este evento se carga sin la interacción del usuario (vea la respuesta de Gabrielleila a continuación). –