[解決済み] jQueryを使ったオプション要素のアルファベット順ソート
2023-04-07 06:44:14
質問
ソートを理解するために
option
要素内の
select
要素をアルファベット順に並べます。理想的には、ユーザーがいくつかのボタンをクリックしたときにソートされる必要があるため、これを別の関数として持ち、select要素に渡すことができればと思います。
これを行うための良い方法を探し続けましたが、私のために機能するものを見つけることができませんでした。
option 要素は値ではなく、テキストでアルファベット順にソートする必要があります。
これは何らかの方法で可能でしょうか?
どのように解決するのですか?
私ならこうします。
-
テキストと値を抽出し
<option>
をオブジェクトの配列に展開する。 - 配列をソートする。
-
を更新します。
<option>
要素を配列の内容で順番に更新します。
それをjQueryでやるには、こうすればいい。
var options = $('select.whatever option');
var arr = options.map(function(_, o) { return { t: $(o).text(), v: o.value }; }).get();
arr.sort(function(o1, o2) { return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0; });
options.each(function(i, o) {
o.value = arr[i].v;
$(o).text(arr[i].t);
});
編集
- アルファベットの大文字と小文字を無視するようにソートしたい場合は、JavaScriptの
.toUpperCase()
または
.toLowerCase()
関数で比較します。
arr.sort(function(o1, o2) {
var t1 = o1.t.toLowerCase(), t2 = o2.t.toLowerCase();
return t1 > t2 ? 1 : t1 < t2 ? -1 : 0;
});
関連
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] jQueryを使ったAjaxリクエストの中断
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み]どのように私はjQueryを使用してアルファベット順にリストを並べ替えることができますか?
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?