Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tester la valeur d'une classe

7 réponses
Avatar
scalpa
bonjour

Je ne comprends pas pourquoi le code suivant est ex=C3=A9cut=C3=A9 quelle q=
ue
soit le nom de la classe de la balise span.
Html :
=E2=80=94=E2=80=89<span class=3D"Noselected" style=3D"color: blue;"
onclick=3D"verif(this);">C</span>=E2=80=99
<span class=3D"selected" style=3D"color: blue;"
onclick=3D"verif(this);">est</span>

Js:
function verif(quoi) {
if (quoi.className =3D'selected'){
NbMotsRestantAtrouver ++;
ListeActuelle.push(quoi);
}
etc...
J'ai essay=C3=A9 if (quoi.className =3D=3D'selected'){
et l=C3=A0, le code n'est plus ex=C3=A9cut=C3=A9 du tout!?

Quelqu'un a-t-il une id=C3=A9e?
merci

7 réponses

Avatar
Bol
Bonjour

if (quoi.className ='selected'){



C'est une affectation

J'ai essayé if (quoi.className =='selected'){



C'est cela,
maintenant pour tester toi même un petit
alert( quoi.className )
te donnera surement la solution

et là, le code n'est plus exécuté du tout!?



Piste : peut-être y a-t-il une autre classe ?

A+
Bol
Avatar
Pascal
scalpa a écrit :
bonjour



Bonjour,

function verif(quoi) {
if (quoi.className ='selected'){
NbMotsRestantAtrouver ++;
ListeActuelle.push(quoi);
}
etc...
J'ai essayé if (quoi.className =='selected'){




Oui, le test doit se faire avec "==" et non "=".
Dans la partie non citée ("etc..."), l'accolade de la fonction est-e lle
bien refermée ?
Parce que chez moi le simple code suivant fonctionne comme prévu :
<script>
function verif(quoi) {
if (quoi.className == 'selected'){
console.log("ok");
}
}
</script>

Cordialement,
Pascal
Avatar
scalpa
Je creuse toujours..... effectivement dans le fichier ci-dessous cela
fonctionne sauf pour le background d'une div dont la couleur de fond
est attribuée en passant par son ID...

Mais dans le fichier sur le quel je suis, modifier la class d'un span
ne produit aucun effet (visible) sur celui-ci, alors que modifier son
style fonctionne......: BIZARRE!
ça ne marche pas :
if(a.className =='selected' && b.className == 'red'){
// C'est une bonne réponse
a.className = 'green';
repok++;
}
Mais ça, ça marche :
if(a.className == 'selected' && b.style.color == 'red'){
// C'est une bonne réponse
a.style.color = 'green';
repok++;
}

MERCI de votre aide
scalpa

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title></title>
<style type='text/css'>
#mondiv{
background-color: red;
}
body {
font-family: geneva, helvetica, arial, verdana; margin-left: 15px;
}

.blue{
color: blue;
font-weight: normal;
padding: 5px;
margin: 20px;
}

.red {
color: red;
font-weight: bold;
padding: 5px;
margin: 20px;
}


.violet {
color: purple;
background-color: fuchsia;
font-weight: bold;
text-decoration: underline;
padding: 5px;
margin: 20px;
}

.Noselected{
border: red 1px solid;
padding: 5px;
margin: 20px;
background: pink;
color: green;
font-weight: normal;
}

.selected {
border: green 1px solid;
padding: 5px;
margin: 20px;
background: yellow;
color: red;
font-weight: normal;
}
</style>
<script type='text/javascript'>
function verif(quoi) {
if (quoi.className == 'blue'){
quoi.className = 'violet'
quoi = quoi.innerHTML;
}
if (quoi.className == 'selected'){
quoi.className = 'Noselected'
quoi = quoi.innerHTML;
}
}

</script>
</head>
<body>

<div id='mondiv' class="blue" onclick='verif(this);' >
bla bla bla bla bla
</div>
<div id='mondiv2' class="selected" onclick='verif(this);' >
bla bla bla bla bla
</div>

</body>
</html>
Avatar
Pascal
scalpa a écrit :
ça ne marche pas :
if(a.className =='selected' && b.className == 'red'){
// C'est une bonne réponse
a.className = 'green';
repok++;
}



A moins que la classe "green" ne soit pas définie, je ne vois pas
pourquoi ça ne fonctionnerait pas.
Cela dit, on a qu'un bout du code de la fonction qui, apparemment,
demande deux arguments ("a" et "b").
Y a-t-il une page de test en ligne qu'on puisse voir ?

@+,
Pascal
Avatar
scalpa
J'ai été obligé de bidouiller avec les styles plutôt qu'avec les
classes, dommage car c'est moins classe du coup.........
Y a-t-il une page de test en ligne qu'on puisse voir ?



oui ici : http://www.scalpa.info/genclicmot.php

d'ailleurs j'espère qu'elle est clean du point de vue de l'injection
de code malicieux...... car je ne suis pas capable d'en juger
vraiment !!!!!!!

cordialement
Pascal
Avatar
SAM
Le 4/23/10 1:15 PM, scalpa a écrit :

Mais dans le fichier sur le quel je suis, modifier la class d'un span
ne produit aucun effet (visible) sur celui-ci, alors que modifier son
style fonctionne......: BIZARRE!
ça ne marche pas :
if(a.className =='selected' && b.className == 'red'){
// C'est une bonne réponse
a.className = 'green';




Heu ...
faudrait au moins que la class 'green' existe dans la feuille de style

... je ne vois aucun
.green { blabla }
dans la FdS ci-dessous

<style type='text/css'>
#mondiv{
background-color: red;
}
body {
font-family: geneva, helvetica, arial, verdana; margin-left: 15px;
}

.blue{
color: blue;
font-weight: normal;
padding: 5px;
margin: 20px;
}

.red {
color: red;
font-weight: bold;
padding: 5px;
margin: 20px;
}


.violet {
color: purple;
background-color: fuchsia;
font-weight: bold;
text-decoration: underline;
padding: 5px;
margin: 20px;
}

.Noselected{
border: red 1px solid;
padding: 5px;
margin: 20px;
background: pink;
color: green;
font-weight: normal;
}

.selected {
border: green 1px solid;
padding: 5px;
margin: 20px;
background: yellow;
color: red;
font-weight: normal;
}
</style>




--
sm
Avatar
scalpa
bonjour

... je ne vois aucun
.green { blabla }
dans la FdS ci-dessous



C'est vrai dans cet exemple, mais dans la fds clicmot4.css, elle y
était. Mais le principe du test restait le même.

Merci
Pascal C


On 24 avr, 19:44, SAM
wrote:
Le 4/23/10 1:15 PM, scalpa a crit :



> Mais dans le fichier sur le quel je suis, modifier la class d'un span
> ne produit aucun effet (visible) sur celui-ci, alors que modifier son
> style fonctionne......: BIZARRE!
> a ne marche pas :
>                    if(a.className =='selected' && b.className == 'red'){
>                            // C'est une bon ne r ponse
>                            a.className = 'green';

Heu ...
faudrait au moins que la class 'green' existe dans la feuille de style

... je ne vois aucun
       .green { blabla }
dans la FdS ci-dessous





> <style type='text/css'>
> #mondiv{
>    background-color: red;
> }
> body {
>    font-family: geneva, helvetica, arial, verdana; margin-left: 15p x;
> }

> .blue{
>    color: blue;
>    font-weight: normal;
>    padding: 5px;
>    margin: 20px;
> }

> .red {
>    color: red;
>    font-weight: bold;
>    padding: 5px;
>    margin: 20px;
> }

> .violet {
>    color: purple;
>    background-color: fuchsia;
>    font-weight: bold;
>    text-decoration: underline;
>    padding: 5px;
>    margin: 20px;
> }

> .Noselected{
>    border: red 1px solid;
>    padding: 5px;
>    margin: 20px;
>    background: pink;
>    color: green;
>    font-weight: normal;
> }

> .selected {
>    border: green 1px solid;
>    padding: 5px;
>    margin: 20px;
>    background: yellow;
>    color: red;
>    font-weight: normal;
> }
> </style>

--
sm- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -