弄个下拉菜单,信息是从xml文件提取的,数据从后台以xml文件的形式还回,这些我都弄好了,可是不懂得前台的DOM技术,信息总是在菜单中显示不了,大家帮帮忙。
后台的代码以及前台的一部分代码觉得都没问题,下面是觉得有问题的代码:
  function processRequest() 
    {
        if (http_request.readyState == 4) 
        { // 判断对象状态
            if (http_request.status == 200) 
            { // 信息已经成功返回,开始处理信息
   var divhtml = http_request.responseXML;
   var childs=divhtml.childNodes;
     var select = document.getElementById("select1");
   for(var i=0; i<childs.length; i++){
    select.innerHTML+="<option>"+childs[i].getNodeValue()+"</option>";
   }
            }
        }
       
   } 
其中的divhtml是从后台得到的,select1是下拉菜单的id。

解决方案 »

  1.   

    你先看一下
     var divhtml = http_request.responseXML; 
      var childs=divhtml.childNodes; 
    分别得到的是什么,先的看看你XML中的信息是不是准确的得到了,你上边的代码看起来好像是正确的。
      

  2.   

    没有指定xml的的文档标记例如:
    //得到标记值数组
    var content = xmlDoc.getElementsByTagName("diaryContent");
    var diaryId = xmlDoc.getElementsByTagName("diaryId");
    var diaryTitle = xmlDoc.getElementsByTagName("diaryTitle");
    var diaryTime = xmlDoc.getElementsByTagName("diaryTime");
    var diaryType = xmlDoc.getElementsByTagName("diaryType");
    //从数组中拿出值
    td.innerHTML = diaryTitle[i].firstChild.nodeValue.substr(0,10);
      

  3.   

    childs[i].getNodeValue()?
    childs[i].NodeValue?
      

  4.   

    http://www.w3school.com.cn/xmldom/dom_node.asp
      

  5.   

    function processRequest(){ 
      if (http_request.readyState == 4){ // 判断对象状态 
            if (http_request.status == 200){ // 信息已经成功返回,开始处理信息 
                var divhtml = http_request.responseXML; 
              var childs=divhtml.childNodes; 
              var select = document.getElementById("select1"); 
              for(var i=0; i <childs.length; i++){ 
                   var oOption = document.createElement("OPTION");
           select.options.add(oOption);
           oOption.innerText = childs[i].getNodeValue();
           oOption.value = i;
              } 
           } 
     } 
    }
      

  6.   

    var divhtml = http_request.responseXML;这个我在前台测试时候是object[]还是object,后台的数据是这样的:
    List<String> list=c.findnode();//从xml文件取出数据
    for(int i=0;i<list.size();i++){
    dthtml.append("<类别>");
    dthtml.append(list.get(i));
    dthtml.append("</类别>");
    }
    dthtml.append("</分类>");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");          
            try {
    response.getWriter().print(dthtml.toString());//返回信息到页面;
    } catch (IOException e) {
    e.printStackTrace();
    }
      

  7.   

    会报错,还是取不到? alert返回值出来看看。另外,select.innerHTML 这句在不同的浏览器里面解析都会不一样,。
      

  8.   

    alert("divhtml");alert("childs");显示的是[object],大家帮帮忙啊!
      

  9.   

    不会用xml就用json对象
    var menuArray= [];
    menuArray.push({"menuId":"001","menuTxt":"菜单1"});
    menuArray.push({"menuId":"002","menuTxt":"菜单2"});for(var i = 0, l = menuArray.length; i < l; i++){
        var menuId = menuArray[i].menuId;
        var menuTxt = menuArray[i].menuTxt;
    }
      

  10.   

    for(var i=0; i <childs.length; i++){
         var opt = document.createElement("OPTION");
         opt.text = childs[i].nodeValue();
         opt.value = childs[i].nodeValue();
         select.add(opt);