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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

1289閲覧

javascriptで作ったタイピングゲームが最初の文字しか動きません

jpj

総合スコア27

JavaScript

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2019/03/30 06:18

編集2019/03/30 09:29

とあるソースコードをコピペしたのですが、cssが先頭の文字のみ適用され、その後の文字には反応しません。
ブラウザはChromeですが、サファリでも同じ動きになってしまいます。
リンク内容

該当のソースコード

var p = document.getElementById('text'); //タイピングする文字列をここで用意しておく var textLists = [ 'Hello World', 'This is my App', 'How are you?', 'Hello Hello', 'I love JavaScript!', 'Good morning', 'I am Japanese', 'Let it be' ]; var checkTexts = []; createText(); function createText() { //文字列をランダムに取得する var rnd = Math.floor(Math.random() * textLists.length); //前の文字列を削除してから次の文字列を表示する p.textContent = ''; //文字列を1文字ずつに分解して、それぞれにspanタグを挿入する checkTexts = textLists[rnd].split('').map(function(value) { var span = document.createElement('span'); span.textContent = value; p.appendChild(span); return span; }); } document.addEventListener('keydown', keyDown); function keyDown(e) { //キーボードからの入力は「e.key」に格納されている if(e.key === checkTexts[0].textContent) { checkTexts[0].className = 'add-blue'; //0番目の配列要素を削除して、次の1文字を比較対象にする checkTexts.shift(); //配列要素が空っぽになったら次の問題を出す if(!checkTexts.length) createText(); } }

補足情報(FW/ツールのバージョンなど)

chromeは73.0で最新バージョンです。
fire Foxも同じ反応で、66.0.2の最新です。
safariも最新です。
テキストエディタはamomを使っています。

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

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

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

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

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

Lhankor_Mhy

2019/03/30 07:40

Chrome73 Firefox66 で「cssが先頭の文字のみ適用され、その後の文字には反応しません」という問題が再現しませんでした。 なお、IE11では問題が起きましたが、「cssが先頭の文字のみ適用され、その後の文字には反応しません」というものではありませんでした。どうも空白の文字を textContent プロパティにセットする時に失敗しているみたい。
Lhankor_Mhy

2019/03/30 13:03

繰り返しになりますが、Chrome73 Firefox66 で「cssが先頭の文字のみ適用され、その後の文字には反応しません」という問題が再現しませんでした。 ↓質問者の環境で動作しますか? https://jsfiddle.net/Lhankor_Mhy/bo7wyL08/ もし、動作しないのであれば、環境の問題かと思います。 もし、動作するのであれば、こちらのコードとそちらのコードに差異があると思われますので、問題の再現するコードをご提示ください。
jpj

2019/03/31 02:48

添付されたurlでも、まともに動作しないので、こちらのpc環境が原因と思われます。 お手数おかけ致しました。 色々とありがとうございます。
jpj

2019/05/07 07:05

パソコンの入力ソースの設定を変えると異常はなくなりました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問