option sort()

[新着] Webテンプレートを仮オープンしました



0   名前:  : 2006/07/27(木) 01:14  ID:cDxO9gop
こんにちは みなさん
下のようなセレクトフォームがあったとき、optionのtextを降順に並べ替える
にはどのような関数を書けばよいのでしょうか。よろしくお願いいたします。


<form>
<select onchange="OrderIt()">
<option>5</option>
<option>2</option>
<option>4</option>
<option>1</option>
<option>3</option>
</select>
</form>

1   名前: Pid : 2006/07/27(木) 01:14  ID:9bTiLbYD
・option 要素群を select.remove() しつつ Array オブジェクトに格納
・option.text で Array.sort()
・Array オブジェクトの格納順に select.add()

で良いのでは(過去ログにもあったはず)。



Firefox 1.5 と Safari 2.0 ならば

function OrderIt (options) {
    Array.prototype.sort.call (options, function (o1, o2) { return o1.text - o2.text; } );
}


でいけるようですが(恐ろしい)。

2   名前:  : 2006/07/27(木) 01:14  ID:cDxO9gop
柳です。Pidさん、お答えありがとうございます。
既出なのですね。探してみます。
考え方とコードまで頂けてうれしいです。
比較関数を使うわけですね、なるほど。

一覧へ戻る