Question

Les bibliothèques JavaScript jQuery et Prototpye refusent de me permettre d'utiliser une variable pour sélectionner un élément de liste par numéro d'index bien qu'elles acceptent un numéro codé en dur.

Par exemple, dans Prototype, cela fonctionne :

$$('li')[5].addClassName('active');

Mais cela ne fonctionnera pas, quelle que soit la façon dont j'essaie de convertir la variable sous forme de nombre ou d'entier :

$$('li')[currentPage].addClassName('active');

Dans jQuery, j'obtiens une bizarrerie similaire.Cela fonctionnera :

jQuery('li').eq(5).addClass("active");

Mais cela ne fonctionnera plus même si la valeur de currentPage est 5 et son type est number :

jQuery('li').eq(currentPage).addClass("active");

J'essaie de créer un système de pagination JavaScript et je dois définir la classe sur le bouton de la page active.Les éléments de la liste sont créés dynamiquement en fonction du nombre de pages dont j'ai besoin.

Était-ce utile?

La solution

Il semble que j'avais juste besoin d'être plus précis dans mon sélecteur d'éléments, même s'il est étrange qu'un numéro codé en dur fonctionne.

jQuery('#pagination-digg li').eq(currentPage).addClass("active");

Autres conseils

Etes-vous certain que currentPage est un entier ?Essayez quelque chose comme :

var currentPage = 5;
jQuery('li').eq(currentPage);

comme un simple contrôle de santé mentale.Si cela fonctionne, vous devriez essayer de diffuser sur Integer.

Assurez-vous que la variable currentPage est correctement définie dans le code dans lequel elle est accessible.La variable pourrait-elle être modifiée ailleurs dans le code avant que vous y accédiez ?Des outils comme Pyromane peut vous aider à ajouter un point d'arrêt au point d'exécution et à voir la valeur de votre variable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top