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

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

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

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

2回答

4774閲覧

document.getElementByIdで読み込んだdivの数値がif文で判定できない

oyatsu8

総合スコア97

JavaScript

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2018/07/20 03:07

Raspberry piのGPIOのスイッチの信号を

<div id="sw_status01"></div>に表示し、 それが1であれば、 <div id="test01"><img src="i/test01.jpg"/><div> のstyle.display="block"として表示することがしたいのですが、 なぜか、sw_status01の中身が1でも、if(m01 == '1')に入ってきません。 アドバイスをいただけると助かります。

html,javascript

1<!DOCTYPE html> 2<html lang='ja'> 3<head> 4<!-- クライアント側socket.ioを読み込む --> 5<script type="text/javascript" src="/socket.io/socket.io.js"></script> 6</head> 7 8<body> 9<p> SWITCH STATUS 01:</p> 10<div id="sw_status01"></div> 11<div id="test01"><img src="i/test01.jpg"/><div> 12</body> 13 14<script> 15document.getElementById("test01").style.display ="none"; 16console.log('test: '+document.getElementById("sw_status01").innerHTML); 17var m01 = 0; 18 19// websocketコネクションを確立 20var socket = io.connect(); 21 22// サーバーからswitch_dataのデータが来たら呼ばれるコールバック関数を定義 23socket.on("switch_data01", function(data){ 24// htmlの表示を書き換える 25document.getElementById("sw_status01").innerHTML = data.value; 26m01 = document.getElementById("sw_status01").innerHTML; 27 28//ここではコンソールで m01: 1 と表示される 29console.log("m01: " + m01); 30 31if(m01 == '1'){ 32//m01 == '1'になっているはずなのにここは読み込まれない 33 document.getElementById("test01").style.display ="block"; 34 console.log("m01test: " + m01); 35} 36}); 37</script> 38</html>

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

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

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

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

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

guest

回答2

0

ベストアンサー

空白文字が入っているかもしれないので、if文を以下のように直してみてください。

javascript

1if(m01 == '1'){

空白文字の削除

javascript

1if(m01.trim() == '1'){

投稿2018/07/20 03:30

suzu6

総合スコア168

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

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

oyatsu8

2018/07/20 15:19

回答ありがとうございます。 macOS 10.13のchromeバージョン: 67.0.3396.99では上手く動きました! しかし、Raspberry Pi3のChromiumでは今の所上手く動きませんでした、、もう少し調べてみようと思います。
oyatsu8

2018/07/20 15:46

空白文字の削除で上手くいきました!自分のスペルミスでした!
oyatsu8

2018/07/20 16:01

しかし、なぜ空白文字が入るのかが、調べてみたのですがわかりませんでした。気にかけておこうと思います。
suzu6

2018/07/21 00:17

```javascript m01 = document.getElementById("sw_status01").innerHTML;m01 = document.getElementById("sw_status01").innerHTML; ``` おそらく、ここでinnerHTMLを得たときに'1 'のように、スペースが入ったのだと思います。 (もしくは data.valueが'1 'になっていたか) コンソールでみただけだと難しいですね。
suzu6

2018/07/21 00:22

yambejpさんのコードを、innerHTMLから受け取った値に対して試してみてください。
oyatsu8

2018/07/21 10:02

ありがとうございます。受け取った値を見た所、 console.log("m01code: " + m01.charCodeAt()); は48 console.log("m01len: " + m01.length); は2が出ました。 1文字増えているということですよね、、
guest

0

console.log("m01: " + m01); →「m01: 1」と表示されるが
if(m01 == '1')の条件に合致しないということでしょか?

javascript

1console.log("m01code: " + m01.charCodeAt()); 2console.log("m01len: " + m01.length);

で「49」と「1」は返ってきますか?

投稿2018/07/20 03:18

yambejp

総合スコア114572

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

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

oyatsu8

2018/07/20 15:16

回答ありがとうございます。 m01 = '1'; を加えた場合に console.log("m01code: " + m01.charCodeAt()); console.log("m01len: " + m01.length); で「49」と「1」は返ってきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問