如何在ajax调用中分离响应div ID

时间:2014-05-31 06:09:53

标签: javascript jquery html ajax

请帮我解决这个问题。

function createRequestObject(){
    var req;
    if(window.XMLHttpRequest){
    //For Firefox, Safari, Opera
    req = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
    //For IE 5+
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
    //Error for an old browser
    }
    return req;
}

var http = createRequestObject();

function empajax(method,nameId)
{
   url='college/cat/employee.jsp'+"?nameId="+nameId;
   if(method == 'POST'){
        http.open(method,url,true);
        http.onreadystatechange = handleResponse;
        http.send(null);
    }   
}

function handleResponse(){
    if(http.readyState == 4 && http.status == 200){
        var response = http.responseText;
        if(response){
            $("#empname").html(response);
            $("#empnumber").html(response);
          }
    }      
}

在上面的ajax函数中,employee.jsp正在低于div的值下面。如何在habdleResponse()函数中分隔div响应来设置相应div中的值,如(empname,empnumber)

<div> 
    <b>ram</b> 
</div>

<div> 
    <b>1234</b> 
</div>

我只想在empname div中设置员工姓名和员工编号。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您需要遍历XML dom:

function handleResponse(){
    if(http.readyState == 4 && http.status == 200){
     var xmlResponse = xmlHttp.responseXML;
      root = xmlResponse.documentElement;
      names = root.getElementsByTagName("empname");
      numbs = root.getElementsByTagName("empnum");

     for (var i = 0 ; i < numbs.length; i++)  {
     throw(names[i].firstChild.data, numbs[i].firstChild.data);


}

然后只需将变量传递给将它们放入文档中的函数:

 function throw(name , number) {

var divider = document.createElement('div') ;
divider.innerHTML = "<div class='name'>" + name + " </div> <div class='numb'>" + number +"</div>"
 document.appendChild(divider);  

}

然后你会拥有它。每个条目都有一个单独的div。