基本的なことなのですが、色々なサイトを拝見しても解決できず、投稿させて頂きます。
実現したいことは題名の通りなのですが、想定している動きが実現できません。
初期状態
HTML
1<select name="nengo" id="nengo"> 2 <option value="明治">明治</option> 3 <option value="大正">大正</option> 4 <option value="昭和" selected>昭和</option> 5 <option value="平成">平成</option> 6</select>
ボタンを押して、下記functionを実行
jQuery
1$('#nengo option').filter(function(index){ 2 return $(this).text() === '昭和'; 3 }).prop('selected', true);
$("#nengo").val()は昭和となっているのですが、HTML上の表示が明治となってしまいます。
(ちなみにコード上は昭和にselectedが付与されています。)
他にも、function内で下記のようなコードも試してみましたが、いずれも表示が明治になってしまいます。
jQuery
1$('#nengo option:[value="昭和"]').prop('selected',true);
jQuery
1$('#nengo').val('昭和');
いずれも$("#nengo").val()は昭和になっているのですが、表示は明治の状態になります。
ご教示頂ければ幸甚です。
追記
力技で下記のようなコードも試したのですが、やはりHTML上の表示は明治でした。
$("#nengo").empty(); $("#nengo").html('<option value="明治">明治</option><option value="大正">大正</option><option value="昭和" selected>昭和</option><option value="平成">平成</option>');
当然ではありますが、昭和にselectedは付与されております。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/22 03:46
2018/08/22 03:49