Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2010, 07h33   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 63
Points : 10
Points : 10
Par défaut sélection par classe

bonjour,

j'ai un soucis pour utiliser les sélectionneur de JQuery.

J'explique : je veux faire apparaître du texte d'une série de paragraphe (à qui j'ai donné la class=slideN, N étant un nombre). Pour cela j'écrivais :
Code :
$('div.slide'+number).slideDown();
où number était un paramètre de ma fonction

Mais maintenant je veux, au sein d'une classe slide2 par exemple, pouvoir faire apparaître tel ou tel paragraphe. J'ai d'abord penser utiliser des id en // des class, malheureusement j'ai encore plusieurs paragraphes à faire apparaître simultanément. Et deux class ce n'est pas possible.

J'en suis arrivé à faire des class généré en php ainsi :
Code :
class=\"slide".$partcount."detailed".$idcount."\"
donc qui sont du type slideN1detailedN2.

Je voulais donc remplacer mon code
Code :
$('div.slide'+number).slideDown();
par
Code :
$('div[class^="slide'+number+'"').slideDown();
mais cela ne fonctionne pas...

Une idée de pourquoi je n'arrive pas à sélectionner mes div comme ça ?
Et/ou une autre idée pour pouvoir faire mes deux séries de sélection autrement qu'en créant des classes à noms composés ?

En espérant avoir été clair...
20100. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 07h59   #2
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 63
Points : 10
Points : 10
Argh ! pourquoi est-ce quand je viens de poster que je trouve mon erreur ? pourtant j'ai bien du chercher pendant 30' avant de poster... j'avais simplement oublier de fermer le ]

Une autre question toutefois qui n'a pas grand chose à voir :

comment faire en sorte que toutes mes div soit cachées au début ?
j'imagines bien un truc du genre
Code :
 $('div[class^="slide'+number+'"').quelquechose
mais je ne sais pas trop quoi, et surtout je ne sais pas comment faire pour que ce soit pris en compte ? j'avais essayer d'appeler une fonction avec onload de mon body mais ça n'avait pas marché...

Désolé, j'imagines que ce sont des questions de débutant. Je fais de mon mieux pour chercher la réponse par moi même toutefois...
20100. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 08h48   #3
Membre Expert
 
Avatar de Atomya Rise
 
Femme Emilie Lefol
En recherche d'emploi
Inscription : février 2009
Messages : 410
Détails du profil
Informations personnelles :
Nom : Femme Emilie Lefol
Âge : 26
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : En recherche d'emploi
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2009
Messages : 410
Points : 1 275
Points : 1 275
Citation:
Envoyé par 20100. Voir le message
Et deux class ce n'est pas possible.
Heuuu si, cela est tout à fait possible...

Pour avoir deux class il suffit de faire ceci :
Code html :
<div class="classe1 classe2">

Et tu gères cela avec
Code javascript :
1
2
3
 
.addClass("LaClassAajouter")
.removeClass("LaClassAenlever")

En ce qui concerne la question
Citation:
comment faire en sorte que toutes mes div soit cachées au début ?
j'imagine bien un truc du genre $('div[class^="slide'+number+'"').quelquechose
Tu n'est pas loin ^^
Remplace ton .quelquechose par .hide()
__________________

Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
Pas de question technique en privé
- Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
- Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)
Atomya Rise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 09h01   #4
Membre éclairé
 
sébastien courjean
Inscription : novembre 2010
Messages : 204
Détails du profil
Informations personnelles :
Nom : sébastien courjean
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : novembre 2010
Messages : 204
Points : 319
Points : 319
Oui ou bien le mieux un style="display:none;" sur chaque div ou sur la classe de cette div dans le fichier css externe. Ça évite du traitement javascript.
__________________
Sébastien Courjean
Développeur Web
scourjean@cyres.fr
http://www.cyres.fr/
scourjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 13h08   #5
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Citation:
Envoyé par 20100. Voir le message
comment faire en sorte que toutes mes div soit cachées au début ?
j'imagines bien un truc du genre
Code :
 $('div[class^="slide'+number+'"').quelquechose
mais je ne sais pas trop quoi, et surtout je ne sais pas comment faire pour que ce soit pris en compte ? j'avais essayer d'appeler une fonction avec onload de mon body mais ça n'avait pas marché...
Code :
1
2
3
4
 
$(document).ready(function() {
    $("div[class^=slide]").hide();
});
Pour les rendre visible par la suite :

Code :
    $("div[class^=slide]").show();
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 14h30   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 63
Points : 10
Points : 10
Super, merci à vous !

Pour les deux class , j'avais tout bêtement écrit deux fois class = ... au lieu de donner 2 valeurs... du coup je vais pouvoir repenser ma feuille css moi . Finalement j'ai opté pour le display:none, qui me semble le plus propre.
mon soucis pour ça était à l'origine que je ne savais pas générer automatiquement du css pour faire autant de class que nécessaire, du coup j'ai mis le style en "inline". Maintenant que je sais qu'on peux faire plusieurs class, je vais simplement faire une class hidden et ce sera réglé (plus pratique aussi pour gérer ma page sans javascript, car y'a toujours des réticent à la technologie ;-)

et merci pour le code $(document).ready, il me semblait avoir déjà essayer dans cette direction et échoué, mais je reviendrais si ça ne marche pas.
20100. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h35.


 
 
 
 
Partenaires

Hébergement Web