• JavaScript 1


    大纲:

    页面中引入js

    定义函数的三种方式

    window对象&form对象 (BOM)

    document对象

    Element对象

    Node对象

    DOM解析XML

    <!DOCTYPE html>
    <html>
      <head>
        <title>01_页面中如何引入javascript.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        <!--引入外部独立的javascript文件-->
        <script type="text/javascript" src="javascript.js"></script>
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      <script type="text/javascript">
              /*
               * 在页面中引入javascript代码:使用script标签
               *     * type:指定使用的脚本语言
               *     * language:指定使用的脚本语言
               *     * src:引入外部javascript文件
               */
      </script>
      <body>
        This is my HTML page. <br>
      </body>
      <script type="text/javascript">
              /*
               * 在页面中,任意位置都可以引入javascript代码
               *     * head标签中:一般情况,引入外部独立的javascript文件
               *     * body标签之前:
               *         * 获取页面元素:不能
               *         * 定义函数:
               *             * 定义函数即调用:
               *                 * 函数中,包含获取页面元素:不能
               *                 * 函数中,与页面元素无关:可以
               *             * 定义函数不调用:可以
               *     * body标签之后:可以
               */
            
            //
            
            /**
             * 
             */
            
            //1 提示框中的IE或火狐图标:标签该内容支持IE及其他浏览器
            
            //2 如果获取对应方法,需要手动增加"()"
    //        document.add();
            
            //区分大小写:与Java一样。
            var hero;
            var Hero;
            
            //变量是弱类型的:与Java不一样。
            //java,定义变量时,变量的类型已经明确
    //        Int i;
    //        String str;
            //javascript,定义变量,初始化时明确类型
            var str;
            
            //每行结尾的分号可有可无:与Java不一样。
            alert("xxx")
            
            //ECMAScript基本上的内容与java保持一致,少部分内容不一致。
            
      </script>
    </html>

    定义函数的三种方式

    <!DOCTYPE html>
    <html>
      <head>
        <title>01_定义函数的三种方式.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        This is my HTML page. <br>
      </body>
      <script type="text/javascript">
                          //1 普通方式定义
                        /*
                         * function 方法名(参数){
                         *         方法体
                         * }
                         */
    //                    function add(a,b){
    //                        return a + b ;
    //                    }
    //                    alert(add(1,2));
                        
                        //2 构造函数方式
                        /*
                         * var 变量名 = new Function(参数n,方法体);
                         * 
                         * javascript中具有一个Function类型
                         */
    //                    var add = new Function('a','b','return a+b;');
    //                    alert(add(1,3));
                        
                        //3 直接量方式
                        /*
                         * var 变量名 = function(参数){
                         *         方法体
                         * }
                         */
    //                    var add = function(a,b){
    //                        return a+b;
    //                    }
    //                    alert(add(1,4));
                        
                        
      </script>
    </html>

    window对象

    <!DOCTYPE html>
    <html>
      <head>
        <title>01_window对象.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        This is my HTML page. <br>
      </body>
      <script type="text/javascript">
                      //使用window对象的属性和方法时,可以省略"window."
                    
                    //window对象的常用方法:
                    
                    //alert():提示框
    //                alert("xxx");
                    
                    //confirm():确认框
    //                var flag = confirm("你确认要退出吗?");
    //                alert(flag);
                    
                    //prompt():标准输入框,一般不用
                    var flag = prompt("请输入你的用户名:","username");
                    alert(flag);
                    
                    //open()和close()
                    
                    //setTimeout()和clearTimeout()
                    
                    //setInterval()和clearInterval()
                    
                    
                    
      </script>
    </html>

    form对象

    <!DOCTYPE html>
    <html>
      <head>
        <title>02_FORM对象.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <form id="form1" action="test1.html" method="post">
            <input type="text" id="username" name="username" value="username">
            <input type="text" id="password" name="password" value="password">
            <input type="button" id="login" value="登录">
        </form>
        <form id="form2" name="form2" action="test2.html" method="post">
            <input type="text" id="username" name="username" value="username">
            <input type="text" id="password" name="password" value="password">
            <input type="button" id="login" value="登录">
        </form>
      </body>
      <script type="text/javascript">
                          //获取form1的action属性值
                        //访问表单的第一种:document.forms[索引值]
    //                    //1 获取form1
    //                    var form1 = window.document.forms[0];
    //                    
    //                    //2 获取对应的action属性
    //                    alert(form1.action);
                        
                        //获取form2的action属性值
                        //访问表单的第二种:document.表单名
                        var form2 = document.form2;
                        
                        alert(form2.action);
                        
                        
      </script>
    </html>

    document对象

    <!DOCTYPE html>
    <html>
      <head>
        <title>01_查找页面标签.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <input type="text" id="username1" name="username" value="username">
        <input type="text" id="username2" name="username" value="username">
        <input type="text" id="username3" name="username" value="username">
        <input type="text" id="username4" name="username" value="username">
        <input type="text" id="username5" name="username" value="username">
      </body>
      <script type="text/javascript">
                          //获取id="username"的标签的value属性值
                        //1 通过id属性获取对应标签
    //                    var username = document.getElementById("username");
    //                    
    //                    //2 打印value属性值
    //                    alert(username.value);
                        
                        //获取name="username"的标签的value属性值
    //                    var usernames = document.getElementsByName("username");
    //                    
    //                    alert(usernames.length);
                        
                        //获取input标签的value属性值
                        var inputs = document.getElementsByTagName("input");
                        
                        alert(inputs.length);
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>01_创建节点.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <ul id="city">
            <li id="bj" name="beijing">北京</li>
            <li id="sh" name="shanghai">上海</li>
            <li id="cq" name="chongqing">重庆</li>
        </ul>
      </body>
      <script type="text/javascript">
                          //创建<li id="tj" name="tianjin">天津</li>,添加到id="city"标签下
                        
                        //1 创建<li id="tj" name="tianjin">天津</li>
                            //1 创建元素节点<li></li>
                            var liElement = document.createElement("li");
                            
                            //2 创建文本节点"天津"
                            var text = document.createTextNode("天津");
                            
                            //3 将文本节点当作子节点,添加到li标签下
                            liElement.appendChild(text);
                            
                            //4 不能创建属性节点?Element对象
                            liElement.setAttribute("id","tj");
                            liElement.setAttribute("name","tianjin");
                            
    //                        document.createAttribute()
                        
                        //2 获取id="city"标签
                        var cityElement = document.getElementById("city");
                        
                        //3 添加:appendChild()方法,添加到最后面
                        cityElement.appendChild(liElement);
                    
      </script>
    </html>

    Element对象

    <!DOCTYPE html>
    <html>
      <head>
        <title>01_操作页面元素的属性.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <li id="bj" name="beijing">北京</li>
      </body>
      <script type="text/javascript">
                          //获取北京节点的name属性值
                        var bjElement = document.getElementById("bj");
                        
                        alert(bjElement.getAttribute("name"));    //output    beijing
                        
                        //删除北京节点的name属性
                        bjElement.removeAttribute("name");
                        
                        alert(bjElement.getAttribute("name"));    //output    null
                        
                        //设置北京节点的name属性
                        bjElement.setAttribute("name","beijing");
                        
                        alert(bjElement.getAttribute("name"));    //output    beijing
                        
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>02_在标签查找标签.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <ul id="city">
            <li id="bj" name="beijing">北京</li>
            <li id="sh" name="shanghai">上海</li>
            <li id="cq" name="chongqing">重庆</li>
        </ul>
        <select id="edu">
            <option value="博士">博士</option>
            <option value="硕士">硕士</option>
            <option value="学士">学士</option>
        </select>
      </body>
      <script type="text/javascript">
                          //获取id="city"标签下的所有子节点
    //                        //1 获取id="city"标签
    //                        var cityElement = document.getElementById("city");
    //                        
    //                        //2 获取所有子节点
    //                        var children = cityElement.childNodes;        //childNodes:返回的是子节点的集合
    //                    
    //                        alert(children.length);
                        
                        //获取id="edu"标签的所有子节点
                        //select标签,浏览器解析时,自动增加一个文本内容    
    //                        //1 id="edu"标签
    //                        var eduElement = document.getElementById("edu");
    //                        
    //                        //2 获取所有子节点
    //                        var children = eduElement.childNodes;
    //                        
    //                        alert(children.length);
                        
                            //在标签中查找标签,唯一有效的方法:getElementsByTagName()
                            var eduElement = document.getElementById("edu");
                            
                            var options = eduElement.getElementsByTagName("option");
                            
                            alert(options.length);
      </script>
    </html>

    Node对象

    <!DOCTYPE html>
    <html>
      <head>
        <title>01_节点名称、值和类型.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <input type="text" id="username" name="username" value="username">
        <p>
            明天上课
        </p>
      </body>
      <script type="text/javascript">
                          //获取元素节点的nodeName、nodeType和nodeValue
    //                    var input = document.getElementById("username");
    //                    
    //                    alert(input.nodeName);        //output    input
    //                    alert(input.nodeType);        //1
    //                    alert(input.nodeValue);        //null
                        
                        //获取文本节点的nodeName、nodeType和nodeValue
    //                    var pElement = document.getElementsByTagName("p")[0];
    //                    
    //                    var text = pElement.childNodes[0];
    //                    
    //                    alert(text.nodeName);        //output    #text
    //                    alert(text.nodeType);        //output    3
    //                    alert(text.nodeValue);        //output    明天上课
                        
                        //获取属性节点的nodeName、nodeType和nodeValue
                        var input = document.getElementById("username");
                        
                        var attr = input.getAttributeNode("name");
                        
                        alert(attr.nodeName);        //output    name
                        alert(attr.nodeType);        //output    2
                        alert(attr.nodeValue);        //output    username
                        
                        /*
                         * nodeName、nodeType和nodeValue
                         *     * 获取HTML页面的标签,nodeName知道是什么标签
                         *     * 利用nodeType的值,判断获取的是什么节点
                         *     * 获取文本节点的文本内容,利用nodeValue
                         */
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>02_父节点、子节点和同辈节点.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <ul id="city">
            <li id="bj" name="beijing">北京</li>
            <li id="sh" name="shanghai">上海</li>
            <li id="cq" name="chongqing">重庆</li>
        </ul>
      </body>
      <script type="text/javascript">
                          //获取上海节点的父节点
    //                        //1 获取上海节点
    //                        var shElement = document.getElementById("sh");
    //                        
    //                        //2 获取上海节点父节点
    //                        //其实parentElement和parentNode的效果是一样的,但是parentElement只支持IE
    //                        var parent = shElement.parentNode;        
    //                        
    //                        //3 测试
    //                        alert(parent.id);
                            
                            /*
                             * 获取对应标签的属性值
                             *     * 标签.属性名:有些浏览器,不支持直接访问属性
                             *     * 标签.getAttribute(属性名):更通用
                             */
                        
                        //获取id="city"标签的第一个子节点
    //                        //1 获取id="city"标签
    //                        var cityElement = document.getElementById("city");
    //                        
    //                        //2 第一个子节点
    //                        var bjElement = cityElement.firstChild;
    //                        
    //                        //3 测试
    //                        alert(bjElement.getAttribute("name"));
                        
                        //获取id="city"标签的最后一个子节点
    //                        //1 获取id="city"标签
    //                        var cityElement = document.getElementById("city");
    //                        
    //                        //2 最后一个子节点
    //                        var cqElement = cityElement.lastChild;
    //                        
    //                        //3 测试
    //                        alert(cqElement.getAttribute("name"));
                        
                        //获取id="city"标签的第二个子节点
    //                        //1 获取id="city"标签
    //                        var cityElement = document.getElementById("city");
    //                        
    //                        //2 第二个子节点
    //                        var shElement = cityElement.childNodes[1];
    //                        
    //                        //3 测试
    //                        alert(shElement.getAttribute("name"));
                        
                        //获取上海节点的上一个兄弟节点
    //                        //1 获取上海节点
    //                        var shElement = document.getElementById("sh");
    //                        
    //                        //2 上一个兄弟节点
    //                        var bjElement = shElement.previousSibling;
    //                        
    //                        alert(bjElement.getAttribute("name"));
                        
                        //获取上海节点的下一个兄弟节点
                            //1 获取上海节点
                            var shElement = document.getElementById("sh");
                            
                            //2 上一个兄弟节点
                            var cqElement = shElement.nextSibling;
                            
                            alert(cqElement.getAttribute("name"));
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>03_检测子节点和属性.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <input type="text" id="username" name="username" value="username">
        <p>
            明天上课
        </p>
      </body>
      <script type="text/javascript">
                          //判断input标签是否含有子节点
                        var inputElement = document.getElementById("username");
                        
                        //hasChildNodes()方法:返回值是Boolean值,false是不包含,true是包含
                        alert(inputElement.hasChildNodes());
                        
                        
    //                    var pElement = document.getElementsByTagName("p")[0];
    //                    
    //                    alert(pElement.hasChildNodes());
                        
                        //hasAttributes():判断是否含有属性,不支持IE浏览器
                        
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>04_插入节点.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <ul id="city">
            <li id="bj" name="beijing">北京</li>
            <li id="sh" name="shanghai">上海</li>
            <li id="cq" name="chongqing">重庆</li>
        </ul>
      </body>
      <script type="text/javascript">
                      //创建<li id="tj" name="tianjin">天津</li>,添加到重庆标签的前面
    //                    //1 创建<li id="tj" name="tianjin">天津</li>
    //                        //1 创建元素节点<li></li>
    //                        var liElement = document.createElement("li");
    //                        
    //                        //2 创建文本节点"天津"
    //                        var text = document.createTextNode("天津");
    //                        
    //                        //3 将文本节点当作子节点,添加到li标签下
    //                        liElement.appendChild(text);
    //                        
    //                        //4 不能创建属性节点?Element对象
    //                        liElement.setAttribute("id","tj");
    //                        liElement.setAttribute("name","tianjin");
    //                    
    //                    //2 获取重庆节点
    //                        var cqElement = document.getElementById("cq");
    //                    
    //                    //不能使用parent.appendChild(child)
    //                    
    //                    //3 获取重庆的父节点
    //                        var parent = cqElement.parentNode;
    //                    
    //                    //4 parent.insertBefore(newChild,oldChild)
    //                        parent.insertBefore(liElement,cqElement);
                    
                    //创建<li id="tj" name="tianjin">天津</li>,添加到上海标签的后面
                        //1 创建<li id="tj" name="tianjin">天津</li>
                            //1 创建元素节点<li></li>
                            var liElement = document.createElement("li");
                            
                            //2 创建文本节点"天津"
                            var text = document.createTextNode("天津");
                            
                            //3 将文本节点当作子节点,添加到li标签下
                            liElement.appendChild(text);
                            
                            //4 不能创建属性节点?Element对象
                            liElement.setAttribute("id","tj");
                            liElement.setAttribute("name","tianjin");
                        
                        //2 获取上海节点
                            var shElement = document.getElementById("sh");
                            
                        //3 获取上海的父节点
                            var parent = shElement.parentNode;
                        
                        //4 insertAfter()没有,只能使用insertBefore()
                            var cqElement = shElement.nextSibling;
                            
                            parent.insertBefore(liElement,cqElement);
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>05_删除节点.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <ul id="city">
            <li id="bj" name="beijing">北京</li>
            <li id="sh" name="shanghai">上海</li>
            <li id="cq" name="chongqing">重庆</li>
        </ul>
      </body>
      <script type="text/javascript">
                  //删除北京节点,parent.removeChild(child)
                    //1 获取北京节点
                    var bjElement = document.getElementById("bj");
                    
                    //2 获取北京节点的父节点
                    var parent = bjElement.parentNode;
                    
                    //3 删除
                    parent.removeChild(bjElement);
                
                
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>06_替换节点.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <ul id="city">
            <li id="bj" name="beijing">北京</li>
            <li id="sh" name="shanghai">上海</li>
            <li id="cq" name="chongqing">重庆</li>
        </ul>
        <ul id="game">
            <li id="fk" name="fankong">反恐<p>精英</p></li>
            <li id="ms" name="moshou">魔兽</li>
            <li id="xj" name="xingji">星际</li>
        </ul>
      </body>
      <script type="text/javascript">
                          //当点击北京节点时,北京节点被反恐节点替换
    //                    document.getElementById("bj").onclick = function(){
    //                        //1 获取北京节点
    //                        var bjElement = document.getElementById("bj");
    //                        
    //                        //2 获取反恐节点
    //                        var fkElement = document.getElementById("fk");
    //                        
    //                        //3 获取北京节点的父节点
    //                        var parent = bjElement.parentNode;
    //                        
    //                        //4 替换
    //                        parent.replaceChild(fkElement,bjElement);
    //                        
    //                    }
                        
                        document.getElementById("bj").onclick = function(){
                            //1 获取北京节点
    //                        var bjElement = document.getElementById("bj");
                            
                            //2 获取反恐节点
                            var fkElement = document.getElementById("fk");
                            
                            //3 获取北京节点的父节点
                            var parent = this.parentNode;
                            
                            //4 替换
                            parent.replaceChild(fkElement,this);
                            
                        }
                        
                        //this的用法:必须指代HTML页面中的具体元素
                        
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>07_复制节点.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <button id="login">登录</button>
        <p>
            段落
        </p>
      </body>
      <script type="text/javascript">
                          //要求复制button按钮,追加到p标签上
                            //1 获取button按钮
                            var button = document.getElementById("login");
                            
                            //2 复制button按钮
                            //cloneNode()方法:只复制了自身节点,接收参数:Boolean值,是否复制子节点
                            var copy = button.cloneNode(true);
                            
                            //3 获取p标签
                            var pElement = document.getElementsByTagName("p")[0];
                            
                            //4 追加
                            pElement.appendChild(copy);
                        
      </script>
    </html>
    <!DOCTYPE html>
    <html>
      <head>
        <title>08_innerHTML属性.html</title>
        
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
      
      <body>
        <div id="div"></div>
      </body>
      <script type="text/javascript">
                      //将<h1>今天</h1>,添加到div中
                    //第一种方式
    //                    //1 创建<h1>今天</h1>
    //                    var h1Element = document.createElement("h1");
    //                    var text = document.createTextNode("今天");
    //                    h1Element.appendChild(text);
    //                    
    //                    //2 获取div
    //                    var divElement = document.getElementById("div");
    //                    
    //                    //3 插入
    //                    divElement.appendChild(h1Element);
                        
                    document.getElementById("div").innerHTML = "<h1>今天</h1>";    
                    
                    /*
                     * innerHTML属性
                     *     * 多与div和span标签
                     * 
                     * WEB1.0与WEB2.0的区别:
                     *     * WEB1.0:垂直门户网站(以内容为主)
                     *     * WEB2.0:社交网站(以人的关系为主)
                     *     * WEB3.0:基于移动互联网的社交网站
                     */
                    
      </script>
    </html>

    DOM解析XML

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>test01.html</title>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <script type="text/javascript" src="util.js"></script>
        </head>
        <body>
            <select id="province" name="province">
                <option value="">请选择....</option>
                <option value="吉林省">吉林省</option>
                <option value="辽宁省">辽宁省</option>
                <option value="山东省">山东省</option>
            </select>
            <select id="city" name="city">
                <option value="">请选择.....</option>
            </select>
        </body>
        <script type="text/javascript">
                    //select标签:所有事件
                    document.getElementById("province").onchange = function(){
                        //清空
                        var cityElement = document.getElementById("city");
                        var options = cityElement.getElementsByTagName("option");
    //                    for(var z=1;z<options.length;z++){
    //                        cityElement.removeChild(options[z]);
    //                        z--;
    //                    }
                        
                        for(var z=options.length-1;z>0;z--){
                            cityElement.removeChild(options[z]);
                        }
                        
                        //1 页面选中的省份信息
                        var provinceValue = this.value;
                        
                        //2 创建XML解析器
                        var docXml = parseXML("cities.xml");
                        
                        //DOM解析XML,只能使用getElementsByTagName(tagname)
                        //3 获取所有province标签
                        var provinceXmlElements = docXml.getElementsByTagName("province");
                        
                        //4 遍历province
                        for(var i=0;i<provinceXmlElements.length;i++){
                            var provinceXmlElement = provinceXmlElements[i];
                            
                            var provinceXmlValue = provinceXmlElement.getAttribute("name");
                            
                            //5 对比
                            if(provinceValue==provinceXmlValue){
                                //6 获取对应所有city标签
                                var cityXmlElements = provinceXmlElement.getElementsByTagName("city");
                            
                                //7 遍历所有city标签
                                for(var j=0;j<cityXmlElements.length;j++){
                                    var cityXmlElement = cityXmlElements[j];
                                    
                                    var cityXmlValue = cityXmlElement.firstChild.nodeValue;
                                    
                                    //8 添加
                                    //<option value="长春">长春</option>
                                    var option = document.createElement("option");
                                    option.setAttribute("value",cityXmlValue);
                                    var text = document.createTextNode(cityXmlValue);
                                    option.appendChild(text);
                                    
                                    cityElement.appendChild(option);
                                    
                                }
                            }
                        }
                    }
                    
        </script>
    </html>

    xml文件:

    <?xml version="1.0" encoding="GB2312"?>
    <china>
        <province name="吉林省">
            <city>长春</city>
            <city>吉林市</city>
            <city>四平</city>
            <city>松原</city>
            <city>通化</city>
        </province>
        <province name="辽宁省">
            <city>沈阳</city>
            <city>大连</city>
            <city>鞍山</city>
            <city>抚顺</city>
            <city>铁岭</city>
        </province>
        <province name="山东省">
            <city>济南</city>
            <city>青岛</city>
            <city>威海</city>
            <city>烟台</city>
            <city>潍坊</city>
        </province>
    </china>    

    js文件:

    function parseXML(fileXmlName){
        var xmlDoc;            
        try {//Internet Explorer  创建一个空的xml文档
             xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        } 
        catch (e) {
             try {//Firefox, Mozilla, Opera, 创建一个空的xml文档
            xmlDoc = document.implementation.createDocument("", "", null);
             } 
             catch (e) {
             }
        }
        //关闭异步加载
        xmlDoc.async = false;
        //加载xml文件
        xmlDoc.load(fileXmlName);
        return xmlDoc;
    }
  • 相关阅读:
    hibernate反向工程 (eclipse和myeclipse)【转】
    让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
    Struts Tags
    在Eclipse中配置tomcat
    The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
    如何将maven项目导入myeclipse中
    Hibernate配置文件详解
    网站怎么布局能解决不同浏览器对CSS解析的差异,使用css reset
    SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
    Myeclipse最全快捷键
  • 原文地址:https://www.cnblogs.com/vaer/p/3924670.html
Copyright © 2020-2023  润新知