使用AJAX时,当前页面可以';得不到响应的DOM元素,JavaScript不会';也不行

使用AJAX时,当前页面可以';得不到响应的DOM元素,JavaScript不会';也不行,javascript,php,html,ajax,Javascript,Php,Html,Ajax,在我的当前页面中,有一个排序函数,它将通过AJAX将条件发送到另一个php文件进行查询,然后将结果返回到当前页面 单击当前页面上的按钮可触发以下功能: function refineResult(){ var setStatus = document.getElementById("sortByStatus").value; var setSales = document.getElementById("sort

在我的当前页面中,有一个排序函数,它将通过AJAX将条件发送到另一个php文件进行查询,然后将结果返回到当前页面

单击当前页面上的按钮可触发以下功能:

function refineResult(){
                     var setStatus = document.getElementById("sortByStatus").value;
                     var setSales = document.getElementById("sortBySales").value;
                     var setRecordCount = document.getElementById("recordPerPage").value;

                     var xmlhttp;
                        if (window.XMLHttpRequest)
                            {// code for IE7+, Firefox, Chrome, Opera, Safari
                                xmlhttp=new XMLHttpRequest();
                            }
                         else
                                    {// code for IE6, IE5
                                         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                                         }

            xmlhttp.onreadystatechange=function()
                {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200)
                         {
                           document.getElementById("showTable").innerHTML=xmlhttp.responseText;
                         }
                }

    xmlhttp.open("GET","showWorkOrder.php?selectStatus="+setStatus+"&selectSales="+setSales+"&selectCount="+setRecordCount+"&orderby="+sortingKey+"&direction="+direction,true);
    xmlhttp.send();

                 }
<div id="showTable"></div>  
结果将返回并显示到当前页面中的以下元素:

function refineResult(){
                     var setStatus = document.getElementById("sortByStatus").value;
                     var setSales = document.getElementById("sortBySales").value;
                     var setRecordCount = document.getElementById("recordPerPage").value;

                     var xmlhttp;
                        if (window.XMLHttpRequest)
                            {// code for IE7+, Firefox, Chrome, Opera, Safari
                                xmlhttp=new XMLHttpRequest();
                            }
                         else
                                    {// code for IE6, IE5
                                         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                                         }

            xmlhttp.onreadystatechange=function()
                {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200)
                         {
                           document.getElementById("showTable").innerHTML=xmlhttp.responseText;
                         }
                }

    xmlhttp.open("GET","showWorkOrder.php?selectStatus="+setStatus+"&selectSales="+setSales+"&selectCount="+setRecordCount+"&orderby="+sortingKey+"&direction="+direction,true);
    xmlhttp.send();

                 }
<div id="showTable"></div>  

问题1:我无法访问AJAX结果返回的任何DOM元素。在加载的页面上,我检查了源代码,浏览器显示的是上面的元素,没有AJAX返回的确切html代码

问题2:因为我无法从AJAX结果访问任何DOM元素,所以我尝试在另一个php文件中包含JavaScript来操作查询结果,但是,JS似乎也无法处理返回结果

出于测试目的,我在另一个php文件的html部分创建了一个
,然后使用JS简单地设置div元素的innerHTML,但是在我的当前页面上,内容没有显示出来


那么,如何使用JS访问AJAX结果返回的元素呢?谢谢。

我通过将JS包含在AJAX代码的“success”函数中解决了这个问题。我从你那里得到了这个答案


不过,这是一种好的做法吗?

您必须等到上述元素存在后,才能尝试访问它们。