- ベストアンサー
時計を複数表示する場合について
先日、同タイトルに回答して頂いた方、ありがとうございました。 質問の内容は不明確で申し訳ありませんでした。 そこで、再度、具体的に質問させて頂きました。 (教えて!gooでの質問は初めてで、質問者単独では書込み追加ができないんですね) 以下のコードで、複数の時計(都市)を表示する場合、 現在は都市の数だけ「function setTime()」を記述しているんですが 1つにまとめる方法があれば、ご教授願います。 ************************ http://www.geocities.jp/yop_ikunana/test22.html ************************
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> fujillin さん まあ現在完成しているソースコードを見た感じだと、前回のサンプルを見て理解するのに結構時間がかかりそうですし・・・完成したサンプルを提示した方がいいんじゃないかと思います。 あんまり良くない JavaScript コードを世の中に広げないためにも。 > yop_ikunan さん というわけでサンプル (参考 URL) を作ってみました。 yop_ikunan さんのサンプルを見て色々と気になった点を挙げておくと・・・ ・時計の部分に table 要素を使っていますが、原則として table 要素を 「表組み」 以外の目的に使用すべきではない ・ローカルの時刻を取得していますが、よその都市との時差を考えるなら世界標準時を取得すべき ・document.write 関数を使って要素を書き出すのではなく W3C DOM API を使って要素を生成すべき ・取得した時刻 (hour) に時差を足していますが、それだと hour が 24 を超えてしまう可能性がある ・一定間隔で繰り返し関数を呼び出すなら setTimeout 関数よりは setInterval 関数を使うべき。 その際 1000ms 間隔で呼ぶよりはもうちょっと短い間隔で呼んだ方が正確な時刻を表示できる。 (そう気にするレベルでもないですが。) という感じですかねー。 JavaScript って奥が深い上にネット上だとアホみたいな JavaScript のサンプルがごろごろしてて勉強しにくいですけど頑張ってください。 1 冊はまともな本を購入したら勉強しやすいですよ。 サイ本とか。
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
こんにちは。 前回の回答の内容が理解できていないようですね。 http://oshiete1.goo.ne.jp/qa5148693.html #2の for( var i = 0; i < targets.length; i++ ) { #3の for (i=0; i<cl.length; i++) { は両方とも、時計の数だけループをまわすことで処理しているので、ループ内のコードは1回分の記述ですんでいるということになります。 ついでに言うなら、時刻表示の処理だけでなく表示要素を生成する際にも、同様にすることで、1回分の記述ですませることができます。
お礼
fujillin様 またの回答ありがとうございます。 お察しの通り、初心者なので、理解に苦しんでました。 参考にさせて頂き、勉強したいと思います。
お礼
nobuoka様 今回も回答ありがとうございます。 推測されている通り、初心者なのでサンプルもネットから、それっぽいのを見つけて使ってましたので、前回のfujillin様の回答にも理解に苦しんでいた所でした。 サンプルと助言、非常にありがとうございます。 サイ本(オライリーのですよね)等の参考書で勉強したいと思います。 ありがとうございました。