11548 sujets

JavaScript, DOM et API Web HTML5

Salut à tous,
j'ai un problème sur jquery concernant l'utilisation de ajax avec la boucle each() du framwork.voici de code que je vous passe:
<script>
        $(document).ready(function() {
          
           
			$('a.class1').click(function() { 
	          var form_data = { ajax : '1'};
                $.ajax({
                    url: $('a.class1').attr('alt'),
                    type: 'POST',
                    async : false,
                    data: form_data,
                    success: function(msg) {
                                alert($('a.class1').attr('alt'));}
                });
				
                return false;
	        });
			
			
			
			
        });
</script>


voici le code html sur le quel je voudrais appliquer la requete ajax sur chacun des liens suivant.
<a  class="class1" href="#" alt="aidezmoi_1.com">ce lien1</a>
<a  class="class1" href="#" alt="aidezmoi_2.com">ce lien2</a>
<a  class="class1" href="#" alt="aidezmoi_3.com">ce lien3</a>
<a  class="class1" href="#" alt="aidezmoi_4.com">ce lien4</a>
<a  class="class1" href="#" alt="aidezmoi_5.com">ce lien5</a>
<a  class="class1" href="#" alt="aidezmoi_6.com">ce lien6</a>


mon problème est que cette requete ajax ne fonctionne que pour le premier lien (<a class="class1" href="#" alt="aidezmoi_1.com">ce lien1</a>) et pourtant je veut que la requete se fasse sur tous les liens vers des pages differentes ;ce qui nest pas le cas car elle pointe toutes vers le premier lien.je sais que la methode each() peut s'appliquer dans ce cas mais je cherche et je cherche ca ne marche pas bien.
NB:jai fait exprès de metter les liens sur les attributs alt,cela ne dérange pas.merci à tous
cordialement
quand tu fais $('a.class1'), tu ne sélectionnes effectivement que le premier a.class1

Pour sélectionner celui sur lequel tu viens de cliquer, il te faut utiliser $(this)

Par contre, dans $.ajax() le $(this) ne passera pas, il faut donc le déclarer avant.

du coup, tu fais

var obj = $(this);

et tu remplaces ensuite $('a.class1') par obj.

Donc $('a.class1').attr('alt') sera à remplacer par obj.attr('alt') (aussi bien dans url: que dans success:)
kenor a écrit :
quand tu fais $('a.class1'), tu ne sélectionnes effectivement que le premier a.class1

Pour sélectionner celui sur lequel tu viens de cliquer, il te faut utiliser $(this)

Par contre, dans $.ajax() le $(this) ne passera pas, il faut donc le déclarer avant.

du coup, tu fais

var obj = $(this);

et tu remplaces ensuite $('a.class1') par obj.

Donc $('a.class1').attr('alt') sera à remplacer par obj.attr('alt') (aussi bien dans url: que dans success:)


Merci beaucoup pour ta réaction.S'il vous plait je ne suis pas trop calé en javascript Smiley rolleyes que je vien d'apprendre dons une réponse avec un code similaire corrigeant mon erreur me facilitera la tache.Une chose que j'ai saisi sur ce que tu as dit cest que le each() ne fonctionnera pas dans ce cas avec la fonction ajax.S'il te plait met moi code correctif pendant que je prend le détail ce que tu ma passé.Merci