la chiamata di funzione $(parameters) restituisce sempre un oggetto perchè vuol dire:
“hey js dammi un oggetto di tipo jquery che eventualmente contiene parameters”
Che è ben diverso da “hey js trasformami parameters in un oggetto jquery e ridammelo“.
quindi se a questo codice html:
<div><p>Lorem ipsum bla bla bla</p></div>
applicchiamo il jqueroso:
var tmp = $(‘span’);
l’espressione if ($tmp) {//stuffs} risulterà sempre eseguita perchè tmp è un oggetto jquery (un array) di lunghezza nulla, quindi un sistema per rendere efficace l’espressione potrebbe essere:
if ($tmp.length>0) {//better stuffs}
Ci sono tanti altri sistemi, ad esempio prima di scoprire questo effettuavo il controllo sui valori di altri attributi con $(tmp).attr(), ma questo è più compatto e funziona sempre (dovrebbe).
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.