Il y a beaucoup mal ici. En un coup d'œil:
Dr
est une erreur de syntaxe. Les chaînes doivent être entourées de guillemets.
- Vous vérifiez la valeur sélectionnée une fois lors du chargement de la page, sans que l'utilisateur n'ait la possibilité de sélectionner quoi que ce soit. Vous recherchez un
select
avec class="select"
qui n'existe pas dans votre HTML. Vous recherchez également un div
avec id="myselect"
qui n'existe pas dans votre HTML.
- Il n'y a pas de fonction .selected().
Je suspect que vous vouliez dire quelque chose comme ce qui suit:
$(document).ready(function(){
var num = 'Dr';
$("select").change(function(){
if($(this).find('option:selected').text()==num){
$(".test1").hide();
}
});
});
Notez les modifications:
- Wrapped
Dr
entre guillemets parce que c'est une chaîne.
- Créez un gestionnaire d'événements
change
au lieu de simplement vérifier directement l'état actuel du code HTML. Ce gestionnaire d'événements sera appelé chaque fois que l'élément cible "change". (A sa valeur modifiée par l'utilisateur.)
- Remplacé le sélecteur avec juste
select
pour cibler l'élément de formulaire <select>
sur la page. S'il y a plus de <select>
éléments dans votre code cible, vous pouvez également utiliser cette id
ou identifier vos cibles <select>
de différentes manières.
- Lors de l'appel de l'événement
change
, le code recherche l'option sélectionnée dans le <select>
et vérifie le texte de cette option. (Étant donné que le value
est un nombre et non la chaîne 'Dr'
.)
J'ai bifurqué votre CodePen ici pour démontrer.
De plus, si vous voulez re-show l'élément quand une autre option est sélectionnée, vous ajouteriez un else
bloc:
if($(this).find('option:selected').text()==num){
$(".test1").hide();
} else {
$(".test1").show();
}
'Dr' doit être une chaîne – 1252748