
jQueryでselect要素内のoption要素を並び替えしたいのですが、
並び替えは問題なくできるのですが
何故かoption要素でselectedが複数指定されているとselectedの情報が上手く取得できません。
selectedが1つの場合は何故か問題なく取得できます。
問題の解決策あれば教えて頂けますか。
(function($) { $(function() { var options = $("#sortThis2 option"); var arr = options.map(function(i, o) { return { text: $(o).text(), val: o.value, sel: o.selected //true || false }; }).get(); arr.sort(function(o1, o2) { return o1.text > o2.text ? 1 : o1.text < o2.text ? -1 : 0; }); options.each(function(i, o) { o.value = arr[i].val; $(o).text(arr[i].text); o.selected = arr[i].sel; if (o.selected) { $(o).attr("selected",true); } else { $(o).attr("selected",false); } }); }); })(jQuery);
追記 複数のselectedが指定されているのではなく、以下のhtml文の場合も選択できませんでした。
どのような問題が考えられるのでしょうか。
html
<select id='sortThis2'> <option value=''>-リセット-</option> <option value='20160823'>2016年08月23日</option> <option value='20160822'>2016年08月22日</option> <option value='20160824'>2016年08月24日</option> <option value='20160820' selected>2016年08月20日</option> <option value='20160819'>2016年08月19日</option> <option value='20160818'>2016年08月18日</option> </select>
回答2件
あなたの回答
tips
プレビュー