2010-10-28 20 views
0

J'ai un tableau de classes et d'identifiants et j'essaie de parcourir et d'ajouter à ces éléments. Le code ci-dessous fonctionne dans tous les navigateurs sauf IE7 et ci-dessous. IE7 et ci-dessous jettent une exception m'indiquant que 'length' est null ou indéfini. Je me suis battu avec ça pendant un moment maintenant. Des idées?jquery, IE7 et itération

code

est ici: http://gist.github.com/651456

Répondre

0

essayer

$(element).size() 
+0

.length fait partie de l'API jQuery. Il renvoie le nombre d'éléments dans l'objet jQuery, la même valeur que .size(). voir: http://api.jquery.com/length/ – Fermin

+0

mon erreur, ur droite. –

0

According to jQuery's API, .length devrait fonctionner même que .size(), donc je ne pense pas que ce soit la question. Je pense que le problème pourrait être dans la façon dont vous utilisez la méthode jQuery.each(). Encore une fois, according to the API, le rappel jQuery.each() passe en deux valeurs: indexInArray (que vous utilisez comme index) et valueOfElement (que vous utilisez comme element). Le problème peut être avec IE7 étant incapable de transformer votre valueOfElement en un objet jQuery, et donc il ne peut pas obtenir la propriété .length de celui-ci.

Je ne suis pas familier avec le code Drupal, donc je ne l'ai pas testé, mais je pense que cette ligne:

if ($(element).length) { 

pourrait être réécrite comme ceci:

if ($(element) && $(element).length) { 

pour fixer votre problème.

Je m'excuse de ne pas être en mesure de tester cela en premier, mais j'espère que cela fonctionne.