ajax.jsp
function doResponse() {
//当服务器将数据返回给客户端时,readyState状态值为4 if (http_request.readyState == 4) {
//当服务器返回的数据是正常的数据时,status状态值为200
if (http_request.status == 200) {
//通过XMLHttpRequest对象的responseText属性获取
//服务器返回的文本信息
var returnMsg = http_request.responseText;
//根据id获取div元素对象
var array=new Array();
array=returnMsg.split(";");
alert(array[2]);
var msgDiv = document.getElementById(array[2]);
alert(msgDiv);
//通过设置div元素的innerHTML属性来完成信息的显示
msgDiv.innerHTML = array[1];
} }
}
在buy.jsp里面<%@include file="/webapp/commen/ajax.jsp" %>,buy.jsp里面有一个<div id="text1"></div>,现在在ajax.jsp里面var msgDiv = document.getElementById(array[2]);alert(msgDiv);alert的是null。array[2]的值我alert了一下,是text1.但是这样写var msgDiv = document.getElementById("text1");lert(msgDiv);就没问题,这是咋回事捏

解决方案 »

  1.   

    不好意思漏了一个a,document.getElementById("text1");alert(msgDiv)
      

  2.   

    returnMsg的内容是这样的"name;哈哈哈哈;text1"
      

  3.   

    var msgDiv = document.getElementById(""+array[2])试试
      

  4.   

    var temp_str="document.getElementById('"+array[2])+"')";
    var value=eval(temp_str);
    alert(value);
      

  5.   

    parent.document.getElementById(array[2]);
      

  6.   

    在你通过document.getElementById()获取ID时,你的DIV是否已经创建?
      

  7.   

    前后的空格确定都去掉了吧???你把id和returnMsg都换下测测看,不要又中文又英文的
    比如id='msgd'; returnMsg='aa;bb;msgd';先试下看看
      

  8.   


    <html> 
    <head>  
    <script type="text/JavaScript"> 
    function init()
    {
       var str="text1;text2";
       var arr=str.split(";");
       alert(arr[0]);
       var tmpStr="document.getElementById('"+arr[0]+"').innerHTML";
       alert(eval(tmpStr));
      }
    </script> 
    </head> 
    <body onload="init()"> 
    <div id="text1">aaaaa </div>
    </body> 
    </html>这写了个完整的测试,直接粘贴下来运行,就OK!依照你的情况写的
      

  9.   

    alert("|"+array[2])+"|")看看是不是多了空格什么的
      

  10.   

    看看返回字符串时,是不是用的 out.println()方法? 要改成out.print()
    也就是看看字符串最后是不是有一些其他符号.
    最保险的方法是返回字符串时写成"aa;bb;cc;"这样.字符串完全用分隔符号隔开保护起来.保证前台字符串分割的时候不会有一些意想不到的东西参合进来.