2010-10-11 3 views
1

j'ai plusieurs lignes avec le même identifiant et lorsqu'il est utilisé la fonction jquery:Jquery Cacher plusieurs lignes ont le même id

hide(); 

Cacher la première ligne seulement et ignorer les lignes de repos.

Pourriez-vous me dire comment je peux le réparer?

Merci à l'avance

Neveen

+4

passer à l'utilisation des classes: les identifiants sont supposés être uniques –

Répondre

3

T.J Crowder ci-dessus est correct.

Une autre chose que vous pouvez trouver utile dans jQuery est la fonction each().

$('tr.foo').each(
    function(object){ 
     // do more stuff 
     object.hide(); 
    } 
); 

Avec cela, vous pouvez appliquer une logique conditionnelle et, peut-être seulement cacher la ligne si son contenu contient un filtre mot ou quelque chose.

Je ne savais pas vraiment que je n'avais pas besoin d'utiliser le 'each'. (merci TJ)

+1

De rien. :-) Mais en fait, ce qui précède est incorrect. Le premier paramètre que jQuery transmet sa fonction 'each' (http://api.jquery.com/each/) est le * index * de l'élément. Il définit 'this' pour pointer vers l'élément DOM pour cette itération (et le passe également comme deuxième paramètre, au cas où vous auriez utilisé' proxy' (http://api.jquery.com/jQuery.proxy/) pour mettre 'this' à quelque chose d'autre dans la fonction itérateur). –

6

Vous ne pouvez pas avoir plusieurs lignes avec le même ID, il est une balise invalide. De la spécification (link):

L'attribut id spécifie de son élément identificateur unique (ID). La valeur doit être unique parmi tous les ID dans le sous-arbre home de l'élément et doit contenir au moins un caractère.

Au lieu de cela, assurez-vous que les ID sont uniques ou ne pas utiliser ID du tout, utilisez une autre information qu'ils partagent tous   — une class commune ou un lieu commun (par exemple, tous les enfants du même table ou tbody), etc. Si elles n'ont pas un aspect commun que vous pouvez utiliser, vous devrez leur en donner un, mais il ne peut pas être un ID dupliqué.

Par exemple, pour masquer tous les éléments tr avec la classe « foo » vous pouvez utiliser:

$('tr.foo').hide(); 

En savoir plus sur le sélecteur de classe jQuery (qui est juste le sélecteur de classe CSS) here.

+0

Merci beaucoup T.J. Crowder, les rangs ont la classe commune comment puis-je l'utiliser pour les cacher ?? Thnaks – Neveen

+0

@Neveen: J'ai mis un exemple dans la réponse. –

Questions connexes