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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2551閲覧

[JS,jQuery] jQueryのfunctionの値をif文に使いたい。大変困ってます;;

mementmori

総合スコア7

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/02/13 08:46

編集2017/02/13 08:56

javascript

1コード 2$(document).ready(function() { 3 getWeather(); //Get the initial weather. 4 setInterval(getWeather, 600000); //Update the weather every 10 minutes. 5}); 6 7 8 9function getWeather() { 10 $.simpleWeather({ 11 //初期設定 12 location: 'Kyoto, JP', 13 unit: 'c', 14 15 //正常に実行された時の処理 16 success: function(weather) { 17 //地名の表示 18 html = '<p>'+weather.city+'</p>'; 19 20 //気温の表示 21 html += '<p>'+weather.temp+'℃'+'</p>'; 22 23 //天気 24 html += '<li class="currently">'+weather.currently+'</li>'; 25 26 //画面に表示 27 $("#weather").html(html); 28 29 30 } 31 32 33 34 }); 35 36 37 38 39 40 var string1 = 41 weather.currently.value; 42 var value1 = 0; 43 var html = document.getElementById("output"); 44 if(string1 === "Cloudy"){ 45 value1 = 1; 46 } 47 if(value1 == 1){ 48 html.innerHTML = "晴れ"; 49 }else{ 50 html.innerHTML = "晴れではない"; 51} 52 53 54 55 56} 57 58 59 60 61 62```html 63 64<!DOCTYPE html> 65 <head> 66 <meta charset="utf-8"> 67 <title>simpleWeather.jsサンプル</title> 68 69<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> 70 71 <script src="jquery.simpleWeather.min.js"></script> 72 <script src="app.js"></script> 73 </head> 74 <body> 75 <div id="weather"></div> 76 77 <div id="output"></div> 78 <body> 79</html> 80 81 82

###前提・実現したいこと
jQueryで米国ヤフーの天気サイトから、天気の情報を持ってきていて、
その値を使ってくもり、晴れ(cloudy,sunnyを含む予報 ex partly cloudy)なら1,それ以外なら0を返すプログラムが書きたいのですが、うまくできません。

1,0で返すプログラムの作り方がわからなかったので、とりあえず文字列のまま判断するプログラムを作ってみようと思いましたが、できませんでした。
具体的には、
jsのコードの中のweather.currently に入っているのが天気なので
それを使ってif文に当てはめて晴れか雨を表示してみようとした。

jQueryで取得したweather.currentlyをif文にあてはめることは
できるのでしょうか

わからないことばかりで、大変困っています。
よろしくお願いします。

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

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

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

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

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

turbgraphics200

2017/02/13 08:56 編集

(閉じるほうの)```の後改行入れないと。あと(開始側は```html コードとはせずに```html ("コード"削除)としてください。
kei344

2017/02/13 14:16

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。また、解決されていないなら状況をお教えください。
guest

回答2

0

ベストアンサー

質問者さんのJavaScriptおよびjQuery習熟度が不明なので、とりあえず動く(であろう)修正方法の中で一番手っ取り早いものを…

JavaScript

1 var string1 = 2 weather.currently.value; 3 var value1 = 0; 4 var html = document.getElementById("output"); 5 if(string1 === "Cloudy"){ 6 value1 = 1; 7 } 8 if(value1 == 1){ 9 html.innerHTML = "晴れ"; 10 }else{ 11 html.innerHTML = "晴れではない"; 12}

この部分を、

JavaScript

1 //画面に表示 2 $("#weather").html(html);

このすぐ下に移動するだけです。

###以下説明
$.simpleWeatherという処理はおそらく「非同期処理」と呼ばれるもので、「呼び出してすぐ返事が返ってこない」ものです。非同期処理の戻り値は「やりたい処理」の戻り値ではありません。一般的にJavaScriptの非同期処理の戻り値は無い、呼び出しの成否、またはDeferredオブジェクトのいずれかになります。今回はその辺一切気にせず、「処理されたあとに判定をする」という正しい流れになるようにコードの位置を移動しただけの修正となります。もしDefferedオブジェクトによる処理が聞きたいのであればコメントしてください。

投稿2017/02/13 09:04

masaya_ohashi

総合スコア9206

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

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

mementmori

2017/02/13 09:11

動かすことはできました! Defferedオブジェクトについては勉強してみます!!詳しくありがとうございました^^
guest

0

js

1var string1 = weather.currently.value; 2var value1 = 0; 3var html = document.getElementById("output"); 4if (string1 === "Cloudy") { 5 value1 = 1; 6} 7if (value1 == 1) { 8 html.innerHTML = "晴れ"; 9} else { 10 html.innerHTML = "晴れではない"; 11}

の処理の部分をそのまま、successの関数内に移動させればいいのでは?

投稿2017/02/13 08:59

turbgraphics200

総合スコア4267

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

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

mementmori

2017/02/13 09:09

とりあえず動かすことはできました!! 迅速な回答ありがとうございました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問