2010-07-14 3 views
1

Je suis en boucle dans un tableau en JavaScript pour vérifier null dans chaque objet en utilisant jQuery, quelle serait la meilleure solution de cross-navigateur pour cela?Ce qui serait un moyen complet de vérifier null cross browser

+2

jQuery a rendu si facile à utiliser que de nombreux développeurs oublient ce que Javascript est ou des solutions qui peuvent être résolues facilement sans jQuery https://twitter.com/thephpdeveloper/status/18499858897 – mauris

Répondre

0

null est assez fiable null. Si vous ne vous souciez pas spécifiquement à propos null - qui est, si vous faites la même chose quand quelque chose est undefined comme vous le feriez quand il est null ou toute autre valeur « falsy », vous pouvez simplement utiliser

if (!array[i]) { /* nothing there */ } 

Toutefois, ce n'est pas sûr si vous avez des données numériques, car zéro est "falsifié", ou s'il s'agit de chaînes où une chaîne vide doit être considérée comme "vide" dans le tableau, pour la même raison. Ainsi, vous pouvez comparer avec le double est égal à comparateur pour null

if (array[i] == null) { /* nothing there */ } 

Je ne l'ai jamais entendu parler de problèmes avec différents navigateurs cela.

+0

cela m'a dirigé vers la bonne direction .. le problème que j'avais était de faire $ (arrayname) .each, au lieu de $ .each (arrayname, function()) .... faire le plus tard travaillé pour IE, FF. – bcm

+0

Oui ce serait certainement un problème :-) – Pointy

1

Quel est le problème avec ceci:

if (myValue === null) 
{ 
    \\ Null 
} 

Null est un mot-clé réservé en JavaScript, et il ne devrait pas changer dans les navigateurs.

+0

Trick il y a que "undefined "n'est pas' === '' null'. S'il y a des "trous" dans un tableau parce que rien ne s'y trouve *, alors une référence à cet élément sera "undefined", pas "null". – Pointy

+0

Il a demandé un test contre null. Non nul et indéfini. –

+0

Oui, @SimpleCoder, mais si vous vérifiez un tableau pour des cellules vides, il y a une chance que la distinction soit importante. – Pointy

0

(obj == null) est assez sacrément croisé la dernière fois que j'ai vérifié.