Domanda

Entrambe le librerie JavaScript jQuery e Prototpye rifiutano di consentirmi di utilizzare una variabile per selezionare un elemento di un elenco in base al numero di indice sebbene accettino un numero hardcoded.

Ad esempio, in Prototype funziona:

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

Ma questo non funzionerà, non importa come provo a trasmettere la variabile come numero o numero intero:

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

In jQuery ottengo stranezze simili.Funzionerà:

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

Ma questo non funzionerà più anche se il valore di currentPage è 5 e il suo tipo è number:

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

Sto cercando di creare un sistema di impaginazione JavaScript e devo impostare la classe sul pulsante della pagina attiva.Gli elementi delle voci dell'elenco vengono creati dinamicamente in base al numero di pagine di cui ho bisogno.

È stato utile?

Soluzione

Sembra che avessi solo bisogno di essere più specifico nel mio selettore di elementi, anche se è strano che un numero codificato funzioni.

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

Altri suggerimenti

Ne sei sicuro? currentPage è un numero intero?Prova qualcosa come:

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

come semplice controllo di integrità.Se funziona, dovresti provare a trasmettere a Integer.

Assicurati che l'ambito della variabile currentPage sia corretto nel codice a cui si accede.La variabile potrebbe essere modificata da qualche altra parte nel codice prima di accedervi?Strumenti come Firebug può aiutarti ad aggiungere un punto di interruzione al punto di esecuzione e vedere il valore della tua variabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top