tester la valeur d'une classe

Le
scalpa
bonjour

Je ne comprends pas pourquoi le code suivant est exécuté quelle q=
ue
soit le nom de la classe de la balise span.
Html :
— <span class="Noselected" style="color: blue;"
onclick="verif(this);">C</span>’
<span class="selected" style="color: blue;"
onclick="verif(this);">est</span>

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

Quelqu'un a-t-il une idée?
merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bol
Le #21608231
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
Pascal
Le #21609241
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
scalpa
Le #21616311
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">


<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>
Pascal
Le #21617101
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
scalpa
Le #21618991
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
SAM
Le #21622271
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
scalpa
Le #21624191
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 -
Publicité
Poster une réponse
Anonyme