<span id="output"></span>
<SCRIPT LANGUAGE="JavaScript">
<!--
var txtArr = new Array();
    txtArr[0] = "远处海港传来阵阵船笛";
    txtArr[1] = "我一直飘零到被你拣起";
    txtArr[2] = "如今望着反映窗户玻璃";
    txtArr[3] = "有个我陌生又熟悉";
    var i=0;
    function show(){
    
        if(i<=txtArr[0].length)
        {
          output.innerText+=txtArr[0].substr(i,1);
           
          i++;
        }
       else{
          
          i=0;
          txtArr.shift();
          
          }
    }
    setInterval("show()",300);
//-->
</SCRIPT> 已经实现了一个字一个的输出,但是我想在输出完一句后换行再输出下一句,形成下面的效果:
            远处海港传来阵阵船笛
    我一直飘零到被你拣起
    如今望着反映窗户玻璃
    有个我陌生又熟悉
有会的帮忙改下代码,重做也行,谢谢啦!!

解决方案 »

  1.   

    你代码有多处错误,多都写在里面了:<span id="output"></span>
    <SCRIPT type="text/javascript">
    <!--
    var txtArr = new Array();
    txtArr[0] = "远处海港传来阵阵船笛";
    txtArr[1] = "我一直飘零到被你拣起";
    txtArr[2] = "如今望着反映窗户玻璃";
    txtArr[3] = "有个我陌生又熟悉";
    var i=0;
    var output=document.getElementById("output");
    function show(){
    //此处如果数组长度变为0,要清除Interval.并退出函数执行
    if(txtArr.length<=0){
    clearInterval(interval);
    return;
    }
    if(i<txtArr[0].length)
    {
    var obj=document.createTextNode(txtArr[0].substr(i,1));
    output.appendChild(obj);
    //此处创建元素节点并应用appendChild方法,因为innerText在FireFox中不支持
    //output.innerText+=txtArr[0].substr(i,1);
    i++;
    }
    else{
    //此处创建一个换行的元素节点并appenChild.
    var br=document.createElement("br");
    output.appendChild(br);
    i=0;
    txtArr.shift();
    }
    }
    var interval=setInterval("show()",300);
    //-->
    </SCRIPT>
      

  2.   

    output.innerText+=txtArr[0].substr(i,1);
    需要改成
    output.innerHTML +=txtArr[0].substr(i,1) + "<br/>";