11497 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suppose qu'il y a moyen de faire plus générique mais comment ?


		function changePage1() {
			$('.box').hide();
			$('#p1').show();
		};
		function changePage2() {
			$('.box').hide();
			$('#p2').show();
		};
		function changePage3() {
			$('.box').hide();
			$('#p3').show();
		};	
		function changePage4() {
			$('.box').hide();
			$('#p4').show();
		};	
		function changePage5() {
			$('.box').hide();
			$('#p5').show();
		};


Merci
Administrateur
Bonjour,

si la seule différence est l'id qui va être affiché, on peut les sélectionner tous les 5 avec une seule combinaison de sélecteurs et l'/les afficher.
Qu'il y en ait 0, 1 ou 5 présents dans la page ne provoque pas d'erreur, ça va simplement en afficher 0, 1 ou 5 respectivement Smiley smile


		function changePage1To5() {
			$('.box').hide();
			$('#p1, #p2, #p3, #p4, #p5').show();
		};



EDIT : la bibliothèque Sizzle, la partie sélecteur de jQuery, fonctionne à peu près comme fonctionnent les sélecteurs CSS. Ça a d'ailleurs beaucoup joué dans le succès de jQuery à ses débuts (avec la partie "ça fonctionne pareil dans les navigateurs modernes et IE6" bien entendu)
Modifié par Felipe (13 Apr 2014 - 13:43)
Merci mais ta solution ne fonctionne pas.

En fait ce bout de code est pour afficher une div en particulier.

On click sur un lien, ca cache la précédente div et ca affiche la div p1
sur un autre ca affiche la div p2
etc etc ...
Je voudrais juste passer le numéro de la div en parametre de fonction et l utiliser.
genre :

		function changePage(index) {
			$('.box').hide();
			$('#p"index"').show();
		};	



merci
Modifié par lemg (13 Apr 2014 - 21:53)
Salut si c'es tdu total JS pas de soucis

CE que tu propose en dernier est quasiment LA réponse Smiley smile

I lfau tjuste écrire correctement les choses

function changePage(index) {
			$('.box').hide();
			$('#p'+index).show();
		};