質問: str.substr(0 + cnt,1); $('#textbox').append(m); } ``` ### 補足情報(言語/FW/ツール等のバージョンなど) 何度も質問をしてしまって、大変申し訳ありません。お力をお貸しいただけるとありがたいです。 html上のタグにセリフを表示させたいと考えています。 そこでjsで関数を組んでいます。具体的には、表示させたいセリフをstrという変数を宣言し、タグに入力されている文字列の長さをcntという変数を宣言しました。 while文を使い、cntとstrが同じになるまで、処理を行います。行う処理としては、宣言した文字列を先頭から切り出して、pタグに追加を行うという処理です。 この関数を実行した時に文字が表示されません。 具体的に実現させたいこととして、 11文字ずつ表示させたい。 2セリフが全て表示ができた時に、次のセリフを表示させる関数に処理を移行させたい。 何が足りないかわからないことだらけで、大変申し訳ありませんが、厳しいアドバイスでもいいので、ご教授のほどよろしくお願いいたします。
回答: 考えられたロジックの通りにコードが書かれていないですね。 > > while文を使い、cntとstrが同じになるまで、処理を行います。 > > > `cntがstrに達するまでループする`ということは`cntとstrが一致したらループを抜ける`とういことですよね? いまのコードは ・while条件が「cntとstrが一致している間ループする」になっている ・cnt の変化タイミングが無い です。 先ずはそのあたりを見直してみてください。 尚、「1文字ずつ表示させたい」というのを実現するには適当な空白時間が必要になります。 コンピュータの処理はとても速いですから、単純にwhileで走らせると数文字の処理なんて一瞬で終わり思った通りの表示にならないでしょう。 setTimeout などでタイミングを作る処理が必要になるでしょうから、次のステップではそこに挑戦してみてください。