| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1679 人关注过本帖
标题:初学Ajax 的问题
只看楼主 加入收藏
ConZhang
Rank: 1
来 自:北京
等 级:新手上路
帖 子:282
专家分:0
注 册:2007-8-7
收藏
 问题点数:0 回复次数:2 
初学Ajax 的问题
这几天因为项目的需要,老师让我学习 Ajax,于是找了本书《Ajax基础教程》,
找这里面的例子做,可是发现问题:
parseXML.html:
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>Parsing XML Responses with the W3C DOM</title>
        <script type="text/javascript">
        var xmlHttp;
        var requestType;

        function createXMLHttpRequest(){
            if(window.ActiveXObject){
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest)
            {
                xmlHttp=new XMLHttpRequest();
            }
        }

        function startRequest (requestedList){
            requestType=requestedList;
            createXMLHttpRequest();
            xmlHttp.onreadystatechange=handleStateChange;
            xmlHttp.open("GET","parseXML.xml",true);
            xmlHttp.send(null);
        }

        function handleStateChange(){
            if(xmlHttp.readyState==4){
                //if(xmlHttp.status==200){
                    if(requestType=="north"){
                        listNorthStates();
                    }
                    else if (requestType =="all")
                    {
                        listAllStates();
                    }
            //    }
            }
        }

        function listNorthStates(){
            var xmlDoc=xmlHttp.responseXML;
            var northNode=xmlDoc.getElementsByTagName("north")[0];
            var out="Northern States";
            var nothStates=northNode.getElementsByTagName('state');

            outputlist("Nothern States",northStates);
        }

        function listAllStates(){
            var xmlDoc=xmlHttp.responseXML;
            //alert(xmlHttp.responseXML.type);
            var allStates=xmlDoc.getElementsByTagName('state');
            alert(allStates.length);
            outputList("All States in Document:",allStates);
        }

        function outputList(title,states){
            var out=title;
            var currentState=null;
            alert(states.length);
            for(var i=0;i<states.length;i++){
                currentState=states[i];
                out=out+"\n"+currentState.childNodes[0].nodeValue;
            }
            alert(out);
        }
        </script>
    </head>
    <body>
        <h1>Process XML Document of U.S. States</h1>
        

        

        <form action="#">
            <input type="button" value="View All Listed States: " onclick="startRequest('all');"/>
            

            

            <input type="button" value="View All Listed Northern States" onclick="startRequest('north');"/>
        </form>
    </body>
</html>
parseXML.xml
程序代码:
<?xml version="1.0" encoding="UTF-8" ?>
<states>
    <north>
        <state>Minnesota</state>
        <state>Iowa</state>
        <state>North Dakota</state>
    </north>
    <south>
        <state>Texas</state>
        <state>OKlahoma</state>
        <state>Louisiana</state>
    </south>
    <east>
        <state>New York</state>
        <state>North Carolina</state>
        <state>Massachusetts</state>
    </east>
    <west>
        <state>California</state>
        <state>Oregon</state>
        <state>Nevada</state>
    </west>
</states>
到底怎么回事啊?
xmlHttp.responseXML返回列表的长度怎么是0啊?
求助
搜索更多相关主题的帖子: Ajax 初学 
2007-12-21 15:02
scdmike
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-1-12
收藏
得分:0 
你是怎么运行测试的啊?
2007-12-22 10:52
ConZhang
Rank: 1
来 自:北京
等 级:新手上路
帖 子:282
专家分:0
注 册:2007-8-7
收藏
得分:0 
在这个listAllStates方法里面加了一句:alert(allStates.length);
然后然后运行是弹出的对话框显示:0
2007-12-22 16:01
快速回复:初学Ajax 的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019172 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved