2009-11-27 3 views
1

J'ai environ 6 éléments div avec la même classe. Quand je souris sur l'un d'eux, je veux montrer un autre div à côté d'eux.Comment créer une référence d'identifiant générique avec jQuery

Je pense à leur donner tous un identifiant de la forme id = "mydiv-divname" où mydiv- sera toujours constant.

Comment puis-je référencer les éléments mydiv- *. Je ne peux pas trouver la syntaxe exacte mais je pense que ça devrait être quelque chose comme $ ("# mydiv -" [*]) où le * représente une sorte de joker.

+0

Désolé, c'était une question assez stupide. – Ankur

Répondre

3

Quel but l'ID sert? S'ils sont tous étiquetés avec le même nom de classe, vous pouvez y accéder tout par classe:

`$(".className")... 

Pour déclencher un événement lorsque l'un de ces éléments est plané, utilisez

`$(".className").hover(...) 

Notez que la fonction dans le hover() ne sera déclenché que pour l'élément qui est actuellement plané.

Ils font quelque chose de semblable à ce que vous essayez d'atteindre here - Fading un élément ou sur vol stationnaire (de nombreux éléments sur la page marquée par cette classe)

+0

Mais je veux être en mesure d'accéder à chacun individuellement – Ankur

+0

ok va l'essayer maintenant – Ankur

2

Pourquoi ne pas simplement utiliser la classe dans le sélecteur au lieu de l'identifiant, comme dans

jQuery('.commonClass');

+0

Ensuite, lorsque je souris sur l'un des éléments avec la classe = "commonClass", tous les éléments de cette classe finissent par avoir le nouveau div sur le côté droit. – Ankur

+0

Je peux me tromper - je ne suis pas sûr de ce que signifie exactement votre solution. – Ankur

+0

Vous pouvez accéder à l'élément qui a déclenché l'événement dans votre fonction de gestionnaire, puis afficher la div correcte pour cet élément. – RibaldEddie

2

Il semble que vous allez quelque chose comme ceci:

HTML:

<div class="content" id="con_a">Hello world.</div> 
    <div id="show_con_a" style="display:none">Show Me on content div "a" hover</div> 

<div class="content" id="con_b">Nice to meet you.</div> 
    <div id="show_con_b" style="display:none">Show Me on content div "b" hover</div> 

<div class="content" id="con_c">See you later.</div> 
    <div id="show_con_c" style="display:none">Show Me content div "c" hover</div> 

JAVASCRIPT:

//Collect all divs with 'content' class 
$('.content').each(function(){ 
    //Set mouse handler for each content div 
    $(this).hover(function(){ 
     $('#show_' + this.id).show(); 
    }, 
    function(){ 
     $('#show_' + this.id).hide(); 
    }); 
}); 

ALTERNATIVE JAVASCRIPT:

//Collect all divs with an id that begins with 'con_' 
$("[id=^'con_']").each(function(){ 
    //Set mouse handler for each content div 
    $(this).hover(function(){ 
     $('#show_' + this.id).show(); 
    }, 
    function(){ 
     $('#show_' + this.id).hide(); 
    }); 
}); 
Questions connexes