没有问题啊
<div id='578E-02'></div>
<script language="javascript">
setInterval('changeCharColor("578E-02","聚散离别回忆是最美","yellow","blue","5")', 150);</script>
这是changeCharColor()的代码:
<script language="javascript">
var i=0;
function changeCharColor(divID,ntext,ncolor1,ncolor2,nfontsize) {
var text=ntext;
var color1=ncolor1;
var color2=ncolor2;
var fontsize=nfontsize;
if (navigator.appName == "Microsoft Internet Explorer") {
str = "<font face=arial size=" + fontsize + "><font color=" + color1 + ">";
for (var j = 0; j < text.length; j++) {
if( j == i) {
str += "<font face=arial color=" + color2 + ">" + text.charAt(i) + "</font>";
}
else {
str += text.charAt(j);
}
}
str += "</font></font>";
eval(document.all(divID)).innerHTML = str;
}
(i == text.length) ? i=0 : i++;
}
</script>

解决方案 »

  1.   

    原因是因为你只用了一个i,全局变量
    试试改成这样
    这是changeCharColor()的代码:
    <script language="javascript">function changeCharColor(divID,ntext,ncolor1,ncolor2,nfontsize,n) {
    var text=ntext;
    var i=n
    var color1=ncolor1;
    var color2=ncolor2;
    var fontsize=nfontsize;
    if(i>text.length)i=0
    if (navigator.appName == "Microsoft Internet Explorer") {
    str = "<font face=arial size=" + fontsize + "><font color=" + color1 + ">";
    for (var j = 0; j < text.length; j++) {
    if( j == i) {
    str += "<font face=arial color=" + color2 + ">" + text.charAt(i) + "</font>";
    }
    else {
    str += text.charAt(j);
    }
    }
    str += "</font></font>";
    document.all(divID).innerHTML = str;
         i++;
    setTimeout("changeCharColor('"+divID+"','"+text+"','"+color1+"','"+color2+"','"+fontsize+"',"+i+")",150)
    } }
    </script>
    <div id='578E-02'></div>
    <div id='578E-04'></div>
    <script>
    changeCharColor("578E-02","聚散离别回忆是最美","yellow","blue","5",0)
    changeCharColor("578E-04","人有悲欢离愁","yellow","blue","5",0)
    </script>
      

  2.   

    只有一个div时,没问题,多个时就会了,上面的测试通过