2009-07-27 9 views
0

Je cherche à faire ce que dit le titre. Comme je suis nouveau à la programmation côté client avec le script java tous ensemble, je ne connais pas le «bon» et le «bon» moyen de réaliser ce dont j'ai besoin.Comment utiliser javascript brut dans jquery et ajouter des fonctions uniques aux sélecteurs jquery?

Je souhaite utiliser une simple fonction javascript

var x; 
var items = {}; 

for (x = 0, x < 7; x++) { 
    items[x] = new num; 
} 

$("li").addclass("items" + num); 

Est-ce exact? Suis-je sur la bonne voie même?

+0

Je vous conseille de prendre un bon livre sur JavaScript et jQuery. Je recommande "jQuery in Action" et voici un lien vers les meilleurs livres JavaScript sur Amazon.com: http://www.amazon.com/gp/bestsellers/books/3617/ref=pd_zg_hrsr_b_1_5_last –

Répondre

5

Je ne sais pas ce qui est num dans votre code, mais je suppose que vous voulez obtenir quelque chose comme ceci:

$('li').each(function (i) { 
    $(this).addClass('items' + i); 
}); 

Cela ajoutera une classe avec l'index incrémenter à chaque élément li. Si vous exécutez $("li").addClass("items" + num) cela ajoutera la même classe à tous les éléments li.

BTW. JavaScript est sensible à la casse, donc vous devez écrire addClass au lieu de addclass.

+2

Vous pouvez également utiliser l'argument d'index avec $(). each() pour éliminer le compteur. (http://docs.jquery.com/Core/each) – brianng

+0

Mis à jour mon code. Merci d'avoir trouvé cela. – RaYell

+0

Oh, je viens de remarquer votre méthode ... C'est la façon JQuery (= qui a également résolu mon problème ... merci beaucoup! –

0

Plus .... altération

et je trouve que si je ne

for(var x = 0; x < 7; x++){ 
    $(".nav li").addClass("items_" + x); 
} 

Je ne suis toujours pas sûr de savoir pourquoi ce qui précède ne fonctionne pas ...

oh bien ...

+0

Cela va ajouter la classe à tous les éléments '.nav li' à chaque itération. quelque chose de différent sur chaque article, vous avez besoin de lopp en utilisant '$ .each' – RaYell

0

RaYell est correct. Vous devez utiliser $.each ou vous pouvez utiliser .eq(i) .. à savoir

for(var x = 0; x < $(".nav li).length(); x++){ 
    $(".nav li").eq(x).addClass("items_" + x); 
}