先说一下大概过程:
页面两个按钮,一个初始化,一个查询。
点击初始化,会使用ajax发送到asp服务器返回个xml,然后解析xml后动态生成一个查询的条件(可多选,每个查询条件基本是一个复选框,一个label,一个下拉列表,一个textbox)。
然后再根据输入的查询条件,本地js解析成xml通过ajax发送asp服务器返回结果xml。
本地解析后,再对展示结果的div进行绑定。动态生成结果table。
不知道我表述的清楚了么。。(暂不考虑ajax跨域问题)
现在的问题是,第一次点击查询后,都可以正常执行,但是第二次点击查询(不做任何修改都不行),提示结果的div不能为空啥的。
第二次执行的语句报错地方:
document.getElementById("divResult").outerHTML = strDisp;
document.getElementById("divResult")的值为null
<body>
        <input id="Button1" type="button" value="初始化" onclick="Init()" />
        <input id="ButtonSearch" type="button" value="查询" onclick="SearchTable()" />
        <label id="lblMessage"></label>
    <form id="formDynamicTable"  method="post">
    <table width="100%" id="table1" cellpadding="0" cellspacing="0" border="0" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px"></table>
    </form>
<form id="frmTransferInfo" method="post">
    <textarea style="DISPLAY: none" name="E"></textarea>
    <textarea style="DISPLAY: none" name="F"></textarea> 
    <textarea style="DISPLAY: none" name="G"></textarea> 
    <textarea style="DISPLAY: none" name="H"></textarea>
    
</form>    <form id="frmResult" method="post">
    
    <span>&nbsp;<label id="Samplabel"></label></span>
<textarea style="DISPLAY: none" name="A" rows="10"></textarea>
<textarea style="DISPLAY: none" name="B" id="taRecord" ></textarea>
<textarea style="DISPLAY: none"  name="C" ></textarea>
<textarea style="DISPLAY: none" name="D" ></textarea>
<!--Display Table -End here-------------------------------------------><div id="divResult"  style="width: 200px; height: 200px; overflow: auto;" ></div>
</form></body>

解决方案 »

  1.   

    不清楚 你想搞什么。你为什么要把xml下载到本地? 防止断网?如果不需要,xml生成在服务器就可以了,然后把索引和对应值插入缓存,方便查询。
      

  2.   

    用innerHtml试试,outterHtml包括他自己
      

  3.   

    估计outerHTML = strDisp;的时候,Div被干掉了
      

  4.   


    <div id="div"><input name="button" value="Button" type="button"><font color="green"><h2>This is a DIV!</h2></font></div>
    <input name="innerHTML" value="innerHTML" type="button" OnClick="alert(div.innerHTML);">
    <input name="outerHTML" value="outerHTML" type="button" OnClick="alert(div.outerHTML);">测试一下
      

  5.   


    对,innerHtml也不行,因为div找不到了
      

  6.   


    asp服务器的网站,我不能修改。只能对返回的xml进行操作。这是软件商当初设计的
    我是楼主朋友
      

  7.   


    这个我放在我的div后面了。显示正常,我第二次查询后,也可以正常弹出提示:
    <div id=div><input name=button value=Button type=button><font color=green><h2>This is a DIV!</h2></font></div>
    两个button点击后,弹出的都是一样的提示。是应该这样调试吗??
      

  8.   

    不一样,显示的信息一个有Div,一个没有
    使用document.getElementById("divResult").outerHTML = strDisp;的时候,Div被干掉了,再接着找这个Div就没了
    如果document.getElementById("divResult").innerHTML= strDisp;那么只是Div里面的东西被干掉了,Div还在,再找这个Div就可以找到了
      

  9.   


    我把你的div这样放置:
    <div id="div"><input name="button" value="Button" type="button"><font color="green"><h2>This is a DIV!</h2></font>
    <div id="divResult"  style="width: 200px; height: 200px; overflow: auto;" ></div>
    </div>
    <input name="innerHTML" value="innerHTML" type="button" OnClick="alert(div.innerHTML);">
    <input name="outerHTML" value="outerHTML" type="button" OnClick="alert(div.outerHTML);">调试到第二次的时候,无论是outer还是inner,都提示缺少对象。document.getElementById("divResult")对象为null。
      

  10.   

    比如说你这样:<div id="div">
        <div id="divResult" style="width: 200px; height: 200px; overflow: auto;" ></div>
    </div>
    <div id="strDisp">strdisp</div>
    <input name="innerHTML" value="innerHTML" type="button" OnClick="alert(div.innerHTML);">
    <input name="outerHTML" value="outerHTML" type="button" OnClick="alert(div.outerHTML);">
    <input id="Button1" type="button" value="干掉divResult并换成Strdisp这个元素" onclick="javascript:document.getElementById('divResult').outerHTML = document.getElementById('strDisp');" />
      

  11.   


    用了你的代码替换了我的div,结果第二次查询后,点击你的button1按钮,还是报错
    document.getElementById('divResult'),为null。
    第一次查询后,点击button1按钮,也是这个错误。
    innerHTML是一个table。outerHTML多了一个<DIV id=div></div>另外非常感谢你一直回答我的问题!