0

私は次の機能を持っています:

var index = 0;
var text = 'Hello world!';
function type() {
  document.getElementById('screen').innerHTML += text.charAt(index);
  index += 1;
  var t = setTimeout('type()',200);
}

hello と world の間に br タグを追加できるかどうか知りたいです。

私はそのようにしてみました: 'hello' + br tag + 'world'; おそらくcharAtが原因で、機能しませんでした。

ありがとう

4

1 に答える 1

1

1 つの可能なアプローチ:

var index = 0;
var text = 'Hello world!';
var textLength = text.length;
var elScreen = document.getElementById('screen');
(function type() {
  var charToType = text.charAt(index);
  if (charToType === ' ') {
    charToType = '<br />';
  }
  elScreen.innerHTML += charToType;
  index += 1;
  if (index < textLength) {
    setTimeout(type, 200);
  }
})();

デモ。重要なアイデアは非常に単純です。次に処理される文字が空白の場合、それは に置き換えられ<br />ます。

ここで、他の 2 つの変更点に注意してください。

  • setTimeout の最初のパラメーターとして (文字列の代わりに) 関数参照を使用できます。実際には、このように使用する必要があります。

  • そうする非常に大きな理由がない限り、その文字列の終わりに達したときにその文字列の「入力」を停止する必要があります-したがって、index < textLengthチェック。

于 2014-04-30T16:16:15.543 に答える