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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

4回答

301閲覧

ドットインストールの割り勘電卓

Yokunabya

総合スコア12

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2018/12/25 09:07

前提・実現したいこと

ドッとインストールの割り勘電卓をつくってます。

エラーが発生したのですが何が間違ってるかわかりません
よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ
Uncaught TypeError: Cannot set property 'textContent' of null
at HTMLDivElement.<anonymous> (main.js:28)

該当のソースコード

コード HTML <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>割り勘電卓</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="input-area"> <input type="text" id="price" placeholder="金額"> <input type="text" id="num" placeholder="人数"> <select id="unit"> <option value="10">10円単位</option> <option value="100" selected>100円単位</option> <option value="1000">1000円単位</option> </select> <div id="btn">計算</div> <div class="result-area"> <p id="result">ここに結果を表示します</p> <div id="reset">もう一度計算するか? </div> </div> </div> </div> <script src="js/main.js"></script> </body> </html>

javascript

1(function(){ 2'use strict'; 3var price =document.getElementById('price'); 4var num =document.getElementById('num'); 5var unit =document.getElementById('unit'); 6var btn =document.getElementById('btn'); 7var result =document.getElementById('result'); 8var reset =document.getElementById('reset'); 9 10btn.addEventListener('click',function(){ 11 var payLess; 12 var short; 13 var payMore; 14 var over; 15 var str; 16//A.300(payless)...100(short)不足 17//B.400(payMore)...200余り(over)余り 18//payLess=1000/3; //333.3333 19//payLess=1000/3/100;/3.333 20payLess=Math.floor(price.value/num.value/unit.value)*unit.value;//300 21short= price.value - (payLess * num.value); //100 22 23payMore=Math.ceil(price.value/num.value/unit.value)*unit.value;//400 24over = Math.abs(price.value-(payMore*num.value));//200 25str= 26'一人'+payLess+'円だと'+short+'円足りません'+ 27'一人'+payMore+'円だと'+over+'円余ります'; 28result.textContent = str; 29 30}); 31 32 33})();

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

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

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

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

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

guest

回答4

0

ベストアンサー

<p id="result">ここに結果を表示します</p>

ここのidの前に全角の空白が入ってるのが原因かと思います。

投稿2018/12/25 09:14

dice142

総合スコア5158

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

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

Yokunabya

2018/12/25 14:51

まったく気づきませんでした!! 有難うございました!
guest

0

HTML

1 <p id="result">ここに結果を表示します</p>

全角スペースが原因

HTML

1 <p id="result">ここに結果を表示します</p>

で動きました

投稿2018/12/25 09:18

rururu3

総合スコア5545

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

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

Yokunabya

2018/12/25 14:55

有難うございます!!
guest

0

エラー箇所と原因がエラーメッセージに書かれています。まずエラー内容で調べましょう。
「書籍、参考記事通りに組んだ。見直した」と仰有る人のほとんどが写経すること自体が目的でプログラミングの基本が守れていません。
スペルミスや構文ミスは単に元のコードとにらめっこしただけでは気づけません。
プログラムは指示した通りしか動きません。aとAは別物、aとaも別物です。似てるからといい感じに解釈してはくれません。

投稿2018/12/25 11:29

m.ts10806

総合スコア80765

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

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

Yokunabya

2018/12/25 15:02

有難うございます。確かにただの写経になってたかもしれません。 精進してまいります!
guest

0

エディタに整形や全角スペースがわかるフォントを設定しておくと良いです。
下は atom に rict フォントを設定していて、質問文の html をペーストしてインデントを整形した様子です。変な箇所に全角スペースがあることがわかります。

イメージ説明

投稿2018/12/25 15:12

katoy

総合スコア22324

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

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

Yokunabya

2018/12/25 16:27

有難うございますさっそく設定してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問