J'ai écrit ce morceau de code, cela fonctionne très bien dans FF et Chrome mais pas dans IE. Pourquoi est-ce?Pourquoi cette affectation de classe ne fonctionne pas dans IE
<html>
<header>
<style type="text/css">
.red{
color: red;
}
.green{
color: green;
}
.yellow{
color: yellow;
}
</style>
</header>
<body>
<div id="mydiv" style="height: 50px">Some contents</div>
<div>
<input type="radio" value="1" name="change" onclick="onClick(this)">Red</input>
<input type="radio" value="2" name="change" onclick="onClick(this)">Green</input>
<input type="radio" value="3" name="change" onclick="onClick(this)">Yellow</input>
</div>
<script type="text/javascript">
function onClick(el){
var className = "";
if(el.value == 1){
className = "red";
}else if(el.value == 2){
className = "green";
}else if(el.value == 3){
className = "yellow";
}
document.getElementById("mydiv").setAttribute("class", className);
}
</script>
</body>
</html>
Ou peut-être même .className + = "" + className; ? – danjah
@Danjah mais nous devons alors supprimer la classe déjà affectée dans ce cas. Nous devons donc obtenir toutes les classes affectées puis supprimer la classe précédente puis ajouter la classe actuelle. –
Pour ce que ça vaut, IE prend en charge setAttribute. [Vous devez le dire à setAttribute ('className') au lieu de setAttribute ('class').] (Http://www.digitalmediaminute.com/article/1394/the-browser-dom-and-the-class- attribut) – sdleihssirhc