使用ajax从struts后台action中取值,值已经取出来,如:“你好世;你好中国”,在js里根据分号拆分,然后在<span id="span11"></span>里显示。
现在的问题是:始终显示"你好中国",请问,如何让两条都显示。var xmlHttp_news=null;
function GetXmlHttpObject(){
  var xmlHttp=null;
  try{
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e){
    // Internet Explorer
    try{
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e){
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
} var returnmsg="";
function ajaxQueryNews(){

xmlHttp_news=GetXmlHttpObject();
var url="${pageContext.request.contextPath}/toGetNews.action";
xmlHttp_news.open("GET",url,false);
xmlHttp_news.onreadystatechange = callback;
xmlHttp_news.send(null);
setTimeout("ajaxQueryNews()", 3000);
}
ajaxQueryNews();function callback(){ 
        if (xmlHttp_news.readyState == 4) { 
          if (xmlHttp_news.status == 200) {
              returnmsg = xmlHttp_news.responseText;
  var str = new Array();
  str = returnmsg.split(";");
  for(var i = 0; i<str.length; i++){
   document.getElementById("span11").innerHTML = str[i];
  }
          } 
        }          
     }
<marquee direction="up" scrollamount="1" scrolldelay="30" height="50px">
   <font id="notice"><span id="span11"></span></font>
  </marquee>

解决方案 »

  1.   

    document.getElementById("span11").innerHTML += str[i];这样 ?
      

  2.   

    <marquee direction="up" scrollamount="1" scrolldelay="30"
    height="50px">
    <div id="content">
    </div>
    </marquee>function callback()
    {
    if (xmlHttp_news.readyState == 4)
    {
    if (xmlHttp_news.status == 200)
    {
    returnmsg = xmlHttp_news.responseText;
    var str = new Array();
    str = returnmsg.split(";");
    //Begin
    var div = document.getElementById('content');
    for (var i = 0; i < str.length; i++)
    {
    var subDiv = document.createElement('div');
    subDiv.innerHTML = str[i];
    div.appendChild(subDiv)
    }
    //End
    }
    }
    }
      

  3.   

    for(var i = 0; i<str.length; i++){
    document.getElementById("span11").innerHTML += str[i];
    }
      

  4.   

    1楼是正解。
    你原来document.getElementById("span11").innerHTML = str[i];只是重复赋值,没有将原来的值相加
    但为什么要循环呢?
    把";"去掉不就行了?var str = returnmsg.replace(/\;/g, "");
      

  5.   

    这样到是可以实现,不过,会一直创建div
      

  6.   

    那就改为这样:
    <marquee direction="up" scrollamount="1" scrolldelay="30" height="50px">
    <div id="content">
    </div>
    </marquee>
    function callback()
    {
    if (xmlHttp_news.readyState == 4)
    {
    if (xmlHttp_news.status == 200)
    {
    returnmsg = xmlHttp_news.responseText;
    var str = new Array();
    str = returnmsg.split(";");
    for (var i = 0; i < str.length; i++)
    {
    str[i] += '</br>'
    }
    div.innerHTML = str.join('');
    }
    }
    }
      

  7.   

    漏了一句话 ^_^
    function callback()
    {
        if (xmlHttp_news.readyState == 4)
        {
            if (xmlHttp_news.status == 200)
            {
                returnmsg = xmlHttp_news.responseText;
                var str = new Array();
                str = returnmsg.split(";");
                var div = document.getElementById('content');            for (var i = 0; i < str.length; i++)
                {
                    str[i] += '</br>'
                }
                div.innerHTML = str.join('');
            }
        }
    }