Bonjour à tous !

Je débute avec le JQuery et je n'arrive pas à débloquer un problème pourtant tout simple.
Je souhaite avec une liste déroulante changer la couleur d'un texte se trouvant dans une DIV mias ce que j'ai fait ne fonctionne pas, voici mon code :


<!DOCTYPE html>
<html lang="en">
	<head>
	<title>Test</title>
	<meta charset="UTF-8" />
	<style type="text/css">
#color1 {
	color: #F00
}
#color2 {
	color: #0C0
}
</style>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
	</head>

	<body>
<div>
    <select name="maliste" id="liste">
    <option value="0">Faire un choix</option>
    <option value="color1">Rouge</option>
    <option value="color2">Vert</option>
	</select>
</div>

<div id="color">Mon texte en couleur</div>

<script>
	$("select[name='maliste']").change( function() {
	var couleur = $("select[name='maliste'] > option:selected").val();
	$('#color').attr('id','$couleur');
	}
	);
</script>
</body>
</html>



Si je crée une alerte sur ma variable couleur ça affiche bien la valeur de mon select mais je n'arrive pas à appliquer cette variable à l'id de ma div Smiley sweatdrop
Salut

je ne suis pas un pro en JQUERY

tu as
$("select[name='maliste']").change( function()

ne vaut il pas mieux mettre l'id plutot que le name ?
$("select[id='liste']").change( function()

Modifié par JENCAL (23 Sep 2014 - 15:53)
Bonjour,

Vous devriez utiliser des classes CSS ".color1" et ".color2" et non pas des identifiants. En HTML, un identifiant sert à identifier donc c'est pas très propre de le changer.

Sinon il y a erreur ici :
$('#color').attr('id','$couleur');

Ceci devrait fonctionner :
$('#color').attr('id', couleur);


Mais mieux vaudrait utiliser des classes et donc les méthodes "addClass" et "removeClass" de jQuery.
$('#color').attr('id',couleur);


Par contre écraser la valeur de l'id, je vois pas l’intérêt. Ton script "devrait" fonctionner qu'une seule fois. Vaut mieux utiliser des classes.
Merci Tarh, ça fonctionne !

Du coup j'ai une autre question, pourquoi ma liste ne fonctionne qu'une seule fois ?
Si je choisi rouge mon texte devient rouge et ne peut plus passer vert en le changeant dans ma liste déroulante et inversement.
Le "change" du Jquery ne fonctionne qu'une seule fois ?
Christophe17 a écrit :
Le &quot;change&quot; du Jquery ne fonctionne qu'une seule fois ?


Non, ton ID n'existe plus car tu l'as renommé.

Utilise des classes comme tu l'as indiqué Tarh.
Ok je comprend mieux, merci à vous 2 pour le coup de main, ça faisait 2 jours que je cherchais la solution en arpentant le web, ça soulage Smiley smile