質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

3回答

1375閲覧

JavaScriptについての質問です。変数の取り方を教えてください。

Kota.F

総合スコア8

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/07/30 23:50

/①設定した時間を取得/
function onButtonClick() {
var val = $(' [name=timepicker]').val();
console.log(val); //時間が表示されます。
};

/②現在時刻の取得、表示/
function digitalClock(){
var now=new Date();
document.getElementById('digital-clock').innerHTML=now.toLocaleTimeString();

アラームのような機能を練習で作っています。
①②で値を取得して、合致したら音声を流すような機能をつけたいのですが、①のval変数と②のtoLocateTImeStringをどう取り出せばいいのかが分かりません。
質問が拙くて、申し訳ないのですが何かアイデアがありましたら、教えてください。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ShunsukeIzui さんの回答とたいして変わらないですが。

onButtonClick がアラーム時刻のセット、digitalClocksetInterval で呼ばれる関数だと思うので、次のようにスコープに括ればグローバルを汚染しなくて良いです。

javascript

1$(function(){ 2 3 var alarmTime = null; 4 5 $('#set-alarm').on('click', function(){ 6 alarmTime = $('[name=timepicker]').val(); 7 }); 8 9 setInterval(function(){ 10 var now = new Date(); 11 var str = now.toLocaleTimeString(); 12 13 $('#digital-clock').text(str); 14 15 if (alarmTime && /* val と str を比較? */) { 16 alarmTime = null; 17 // 音を鳴らす 18 } 19 }, 300); 20})

投稿2015/07/31 01:10

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kota.F

2015/07/31 06:56

詳しくありがとうございます。非常に参考になりました!!
guest

0

何でもいいなら、オススメはしませんが、次のようにグローバル変数を用いると簡単でしょう。

javascript

1var val; 2var now; 3 4 /*①設定した時間を取得*/ 5function onButtonClick() { 6 val = $(' [name=timepicker]').val(); 7 console.log(val); //時間が表示されます。 8 }; 9 10/*②現在時刻の取得、表示*/ 11 function digitalClock(){ 12 now=new Date(); 13 document.getElementById('digital-clock').innerHTML=now.toLocaleTimeString(); 14}

これでグローバルな変数になっています。

投稿2015/07/30 23:57

orange0190

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kota.F

2015/07/31 00:38

コメントありがとうございます。グローバル変数なるほどです。参考になりました!
orange0190

2015/07/31 01:05 編集

グローバル変数は汚染するので、本当にオススメしません。 実際には、名前空間を利用したり、クロージャを利用するかと思います。
guest

0

valで取り出すものは文字列で、nowはDateオブジェクトなので、そもそもこのままでは比較できません

なので、型を揃えてやる必要があります
方向性は、inputの値をDateにして、ミリ秒などのいらない精度の情報を落としてから比較する感じですかね

投稿2015/07/31 00:12

kakusuke

総合スコア80

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kota.F

2015/07/31 00:40

ありがとうございます。参考にしつつトライしてみます。助かります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問