A voir également:
- Comment effacer le contenu et le remplacer par un autre
- Remplacer disque dur par ssd - Guide
- Word remplacer un mot par un autre - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Comment effacer une page sur word - Guide
- Word a trouvé du contenu illisible - Guide
2 réponses
Salut,
en pur JavaScript vous passez par className et vous remplacez la chaîne de caractère par la nouvelle.
classList est la même chose(moins tolérée il me semble) et renvoi donc une chaîne de caractères(la liste des classes d'un élément séparée par un espace, exactement comme elle est écrite dans l'attribut HTML "class" d'un élément).
https://developer.mozilla.org/fr/docs/Web/API/Element/classList
https://developer.mozilla.org/fr/docs/Web/API/Element/className
Là vous utilisez la méthode JQuery.toggle qui agit sur un élément(HTML) sur une chaîne de caractère.
https://api.jquery.com/toggle/
indique:
Vous comprenez la différence entre un objet JQuery et une chaîne de caractères?
Donc il faut faire autrement et traiter le texte en texte.
Curieux d'ailleurs que vous n'ayez pas une erreur.
Ou alors utilisez la méthode appropriée, ce que vous avez fait d'ailleurs dans votre code en utilisant .toggleClass
https://api.jquery.com/toggleClass/
en pur JavaScript vous passez par className et vous remplacez la chaîne de caractère par la nouvelle.
classList est la même chose(moins tolérée il me semble) et renvoi donc une chaîne de caractères(la liste des classes d'un élément séparée par un espace, exactement comme elle est écrite dans l'attribut HTML "class" d'un élément).
https://developer.mozilla.org/fr/docs/Web/API/Element/classList
https://developer.mozilla.org/fr/docs/Web/API/Element/className
Là vous utilisez la méthode JQuery.toggle qui agit sur un élément(HTML) sur une chaîne de caractère.
https://api.jquery.com/toggle/
indique:
$( ".target" ).toggle();
Vous comprenez la différence entre un objet JQuery et une chaîne de caractères?
Donc il faut faire autrement et traiter le texte en texte.
Curieux d'ailleurs que vous n'ayez pas une erreur.
Ou alors utilisez la méthode appropriée, ce que vous avez fait d'ailleurs dans votre code en utilisant .toggleClass
https://api.jquery.com/toggleClass/
Merci beaucoup pour ta réponse.
J'ai essayé de tenir compte de tes explications mais pour le coup je n'ai pas réussi à le faire fonctionner... J'ai l'impression que c'est plus cette ligne :
qui me pose problème que le reste...
J'ai l'impression que la fonction ne s'exécute à aucun moment.
J'ai essayé de tenir compte de tes explications mais pour le coup je n'ai pas réussi à le faire fonctionner... J'ai l'impression que c'est plus cette ligne :
$(".upload up").on('click', function changeClass(){ $('#change').toggleClass('uploadDoc'); });
qui me pose problème que le reste...
J'ai l'impression que la fonction ne s'exécute à aucun moment.
votre sélecteur étant faut il y a des chances ;)
Indique en passant par un "objet" JQuery indiqué par $ d'utiliser la classe .upload up.
Hors un nom de classe ne peut pas comporter d'espace et la classe CSS ".upload up" ne peut exister qu'en tant qu'erreur, donc ne donnera JAMAIS un résultat.
Si vous voulez sélectionner plusieurs classes il me semble(je ne suis pas expert en JQuery) qu'il y à une autre syntaxe à utiliser:
https://w3tutoriels.com/jquery/jquery-selecteurs/
https://duckduckgo.com/?q=s%C3%A9lectionner+plusieurs+%C3%A9l%C3%A9ments+en+JQuery
Ou même passer par le sélecteur CSS correct, ici tous ceux possible et ce qu'ils indiquent:
https://www.w3schools.com/cssref/css_selectors.asp
En clair soit
en utilisant la norme classique CSS ou n'importe laquelle qui est juste(donc sans espace dans un nom de classe qui sert à séparer 2 classes différentes pour un élément).
En espérant j'ai bien compris le problème. JQuery je connait un peu mais fait plus de pur JS ^parce que c'est pas toujours un avantage (JQuery) et que ça permet de mieux comprendre le raisonnement derrière(celui du créateur du programme comme celui de la logique du langage), ça revient simplement à créer ses propres fonctions plutôt qu'utiliser celles de JQuery bien pratiques toutefois par qu'elles pas mal de trucs sans avoir à les développer.
ça dépends des corconstances et des objectifs donc.
JQuery me satisfait pas surtout parce que dans pas mal de cas il va rajouter de la lenteur d''exécution surtout pour des tâches simples et/ou répétitives comme à travers une boucle destinée à l'animation graphique.
Indéniablement c'est un très bon outil JQuery et son succès pas démérité mais c'est le choix de son emploi ou pas que je critique dans certains cas ou écrire soit même quelques fonctions suffit plutôt que faire appel à une usine à gaz(même mimifié parce que n'importe quel fichier peut être mimifié de la même manière et plus il sera léger moins la mimification devient nécessaire).
$(".upload up")
Indique en passant par un "objet" JQuery indiqué par $ d'utiliser la classe .upload up.
Hors un nom de classe ne peut pas comporter d'espace et la classe CSS ".upload up" ne peut exister qu'en tant qu'erreur, donc ne donnera JAMAIS un résultat.
Si vous voulez sélectionner plusieurs classes il me semble(je ne suis pas expert en JQuery) qu'il y à une autre syntaxe à utiliser:
https://w3tutoriels.com/jquery/jquery-selecteurs/
https://duckduckgo.com/?q=s%C3%A9lectionner+plusieurs+%C3%A9l%C3%A9ments+en+JQuery
Ou même passer par le sélecteur CSS correct, ici tous ceux possible et ce qu'ils indiquent:
https://www.w3schools.com/cssref/css_selectors.asp
En clair soit
$(".upload .up")si c'est ça que vous voulez(voir explications du sélecteur CSS) ou pour les éléments d'une seule classe
$(".upload-up")
en utilisant la norme classique CSS ou n'importe laquelle qui est juste(donc sans espace dans un nom de classe qui sert à séparer 2 classes différentes pour un élément).
En espérant j'ai bien compris le problème. JQuery je connait un peu mais fait plus de pur JS ^parce que c'est pas toujours un avantage (JQuery) et que ça permet de mieux comprendre le raisonnement derrière(celui du créateur du programme comme celui de la logique du langage), ça revient simplement à créer ses propres fonctions plutôt qu'utiliser celles de JQuery bien pratiques toutefois par qu'elles pas mal de trucs sans avoir à les développer.
ça dépends des corconstances et des objectifs donc.
JQuery me satisfait pas surtout parce que dans pas mal de cas il va rajouter de la lenteur d''exécution surtout pour des tâches simples et/ou répétitives comme à travers une boucle destinée à l'animation graphique.
Indéniablement c'est un très bon outil JQuery et son succès pas démérité mais c'est le choix de son emploi ou pas que je critique dans certains cas ou écrire soit même quelques fonctions suffit plutôt que faire appel à une usine à gaz(même mimifié parce que n'importe quel fichier peut être mimifié de la même manière et plus il sera léger moins la mimification devient nécessaire).