11548 sujets

JavaScript, DOM et API Web HTML5

Je rencontre un petit problème avec Jquery. J'aimerais savoir comment trouver l'index d'un élément lorsqu'on a boucler dessus, ce qui m'intéresse c'est de trouver l'index de "l'élément actuellement utilisé" (the current matched element).

Voilà un petit exemple.


$('ul.tabs-nav a').click(function()
   {
       ad = 'xyz'; // divers traitements
       $("div.tabs-container p.pub").empty().append(ad);
   });


Dans ma page j'ai 7 éléments <a href=""> compris dans mon ul.tabs-nav. J'aimerais savoir lequel a été cliqué (le 1, le 2,... le 7ème ???), pour appliquer un traitement spécial.

Voilà ce que j'ai essayé, sans résultat :


var count = 0;
$('ul.tabs-nav a').click(function()
   {
       count++;       
       ad = 'xyz'; // divers traitements
       $("div.tabs-container p.pub").empty().append(ad);
   }); 


Mais ma variable count, ne me renvoit pas du tout ce que je cherche !!!

Une idée Smiley confus ???
Modifié par nohrad (01 Jul 2007 - 09:07)
Hello,

Voilà j'ai trouvé comment corriger un peu mon script


<php
$absence_de_politesse = true;
if ($absence_de_politesse == true)
{
    echo "Je suis désolé d'avoir été un peu sec dans mon sujet. Je ferais attention la prochaine fois";
   $absence_de_politesse = false;
}
?>


Sinon, si vous avez des idées pour le problème posé ci-dessus, n'hésitez pas Smiley cligne

Merci d'avance @ tous les contributeurs.
Yep,

J'ai codé un truc comme ça, jQuery à du prévoir une fonction qui fait la même chose :


function getIndex(tab,el) {
	var c = 0,
		d;
	tab.each(
		function() {
			if(el==this) return d = c;
			c++;
		}
	)
	return d;
}


Y'a logiquement moyen de faire plus propre avec la closure.

Peace.
Effectivement j'ai trouvé quelque chose du côté du each().

a écrit :

Additionally, the function, when executed, is passed a single argument representing the position of the element in the matched set (integer, zero-index).

http://docs.jquery.com/Core#each.28_fn_.29


Voilà donc ce que cela donne dans mon cas


$('ul.tabs-nav a').each(function(count)
{
   $(this).click(function()
    {
        var ad = 'xyz'+count; // traitements divers
        $("div.tabs-container p.pub").empty().append(ad);
    });
});



Merci @ tous Smiley cligne