![]() |
カレッヂ |
質問者 niwatori
投稿日 2005/7/22(金) 19:45:04
初めて投稿させていただきます niwatoriです http://www.phoenix-c.or.jp/~s-moon/sub411.htm のページを参考にし、表をソートしようと 試みましたが、桁が違う数値(例えば7、200、55、4だと ソートしたら7、55、4、200のようになり上一桁の値でしか ソートされてません。200、55、7、4のように 数値全部でソートするには上記のサイトの どこをどう書き換えればいいのでしょうか? ご教授お願いしますm(__)m
【習熟度】多少の改造ができる |
回答者 sim
[削除]
投稿日 2005/7/25(月) 20:42:55
> http://www.phoenix-c.or.jp/~s-moon/sub411.htm このサイトでは正常に動作しているようですが。 どのように作成したのでしょうか? |
質問者 niwatori
[削除]
投稿日 2005/7/25(月) 21:22:07
回答ありがとうございます そのサイトでは桁が一定なので ちゃんと動作しているおうです if(nval < nval2) { pos = j; nval = nval2; } の前に nval = eval(val); nval2 = eval(val2); を入れてみたら少しはましになったんですけど、 行が多い表を処理してるためか 4、5回クリックしないと完全にソートされません どなたかどんな方法でもいいので 表をソートする技術の持ち主のかた いませんでしょうか? |
回答者 sim
[削除]
投稿日 2005/7/25(月) 22:13:23
なるほど。 if(parseInt(val) < parseInt(val2)) { pos = j; val = val2; } このように変えてみてはいかがでしょうか? |
質問者 niwatori
[削除]
投稿日 2005/7/26(火) 00:13:46
おお!感動しました! ちゃんと一回でソートされました しかも一瞬で 今PHPとJavaScriptでAmazon関係をやってたところです simさん どうもありがとうございました。 |
質問者 niwatori
[削除]
投稿日 2005/7/26(火) 01:38:32
すみません、また別の質問ですが、 科目の順位 総合点 数学 理科 社会 英語 国語 X ○○○ 455 97 85 80 98 95 9506 △△△ 451 86 97 99 89 80 7654 ○○○ 450 98 98 85 75 94 … ○○○ 411 70 88 73 84 96 … ○○○ 405 75 81 75 99 75 … のテーブルでたとえば数学の97と英語の98(つまり同じ行にある数学と英語の値)を 掛け算した答えをXの列のようにして、最初にロードしたときに 書き出せないでしょうか? |
回答者 sim
[削除]
投稿日 2005/7/26(火) 02:13:44
書き出せますね。 やり方は色々あると思いますが、今回のものに合わせて使うのであれば replaceChild() というメソッドを使うと良いのかも知れません。 >最初にロードしたときに と言うことなので、onloadをイベントハンドラに使ってあげればいいかと思います。 |
質問者 niwatori
[削除]
投稿日 2005/7/28(木) 21:58:30
忙しくて遅くなりました DOMは初心者なのでreplaceChild()を調べても それだけではプログラム組めません 勉強してからきます あとこんなサイトも見つけました http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-notes/sort_rows.html |
質問者 niwatori
[削除]
投稿日 2005/7/28(木) 22:24:15
あ、それと 小数(4.57とか4.12とか)がソートされない 新たな問題が発生しましたが、 if(parseFloat(val) < parseFloat(val2)) { pos = j; val = val2; } に変更したら解決できました。 |
回答者 龍
[削除]
投稿日 2006/1/6(金) 11:22:40
それなら、古旗一浩さんの「改訂第3版JavaScriptポケットリファレンス」(本体価格2180円) を購入されてはいかがでしょう。 DOMの事が載っていますよ。(実は僕が持っています。w) |
返信(回答)する
Web裏技 |