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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

JavaScript

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

Q&A

1回答

962閲覧

Uncaught TypeError: Cannot set property 'textContent' of nullの解決の仕方

kotoya

総合スコア0

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

JavaScript

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

0グッド

0クリップ

投稿2020/09/26 05:04

編集2020/09/26 05:06

application.jsに以下のコードを記載したら、エラーが表示されました。

Uncaught TypeError: Cannot set property 'textContent' of null

application.self-4f8606506b46aeebe7a0ee4c9ec664d9624db8e62b80c4ec4fc47b886ab886e1.js?body=1:27 Uncaught TypeError: Cannot set property 'textContent' of null
at createText (application.self-4f8606506b46aeebe7a0ee4c9ec664d9624db8e62b80c4ec4fc47b886ab886e1.js?body=1:27)

p.textContent = '';✖️←が表示されています。

at application.self-4f8606506b46aeebe7a0ee4c9ec664d9624db8e62b80c4ec4fc47b886ab886e1.js?body=1:20

createText();

application.jsの中身

JS

1//= require jquery 2//= require rails-ujs 3//= require_tree . 4 5var p = document.getElementById('text'); 6 7//タイピングする文字列をここで用意しておく 8var textLists = [ 9 'Hello World', 10 'This is my App', 11 'How are you?', 12 'Hello Hello', 13 'I love JavaScript!', 14 'Good morning', 15 'I am Japanese', 16 'Let it be' 17]; 18var checkTexts = []; 19 20 21createText(); 22 23function createText() { 24 //文字列をランダムに取得する 25 var rnd = Math.floor(Math.random() * textLists.length); 26 27 //前の文字列を削除してから次の文字列を表示する 28 p.textContent = ''; 29 30 //文字列を1文字ずつに分解して、それぞれにspanタグを挿入する 31 checkTexts = textLists[rnd].split('').map(function(value) { 32 var span = document.createElement('span'); 33 34 span.textContent = value; 35 p.appendChild(span); 36 37 return span; 38 }); 39} 40 41document.addEventListener('keydown', keyDown); 42 43 44function keyDown(e) { 45 46 //キーボードからの入力は「e.key」に格納されている 47 if(e.key === checkTexts[0].textContent) { 48 checkTexts[0].className = 'add-blue'; 49 50 //0番目の配列要素を削除して、次の1文字を比較対象にする 51 checkTexts.shift(); 52 53 //配列要素が空っぽになったら次の問題を出す 54 if(!checkTexts.length) createText(); 55 } 56} 57

エラーの解決方法を教えていただきたいです。

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

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

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

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

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

guest

回答1

0

var p = document.getElementById('text');

でhtml要素がつかめていないからでは?

投稿2020/09/26 05:09

yambejp

総合スコア116734

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

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

kotoya

2020/09/26 05:11

ご回答ありがとうございます。 html.hamlには %p#text と記載しています。
yambejp

2020/09/26 05:13

scriptの前に出現しますか?
kotoya

2020/09/26 05:41

scriptの前に出現するとはどういう意味ですか?
kotoya

2020/09/26 06:19

html.hamlは %p#text %script{:src => "script.js"} と記載しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問