J2EE进阶之javascript 四

javascript

BOM 浏览器对象模型

    window(*****)           窗口对象
    navigater(**)           和浏览器版本相关
    history(**)             和历史相关
    location(***)           和地址相关

        * history
            * forward()
            * back()
            * go(1获取-1)

        * location
            * href  获取和设置浏览器的地址栏的地址

        * window对象
            * alert()       弹出提示框
            * confirm()     询问框
                * 默认提供了2个按钮,一个确定和取消
                * 点击确定,返回是true,点击取消,返回false
            * moveBy(20,20)
                * 窗口移动
            * open()
                * URL           设置新窗口的地址
                * name          名称
                * features      设置窗口的特征

            * close()
                * 关闭浏览器

            * setInterval("函数名称",3000)      每隔3秒钟执行函数
            * setTimeout("函数名称",3000)       3秒后执行该函数

            * clearInterval()   
            * clearTimeout()    

示例代码1

  1 <!DOCTYPE html>
  2     <html>
  3     <head>
  4     <meta charset="UTF-8">
  5     <title>Insert title here</title>
  6     </head>
  7     <body>
  8         <input type="button" value="下一页" onclick="run()" />
  9         <input type="button" value="上一页" onclick="run2()" />
 10         <input type="button" value="跳转" onclick="run3()" />
 11     </body>
 12     <script type="text/javascript">
 13         /* 
 14          * history
 15          * forward()
 16          * back()
 17          * go(1获取-1)
 18             
 19          * location
 20          * href 获取和设置浏览器的地址栏的地址
 21             
 22          */
 23     
 24         function run() {
 25             //下一页
 26             window.history.forward();
 27         }
 28         function run2() {
 29             //上一页
 30             //window.history.back();
 31             window.history.go(-1);
 32         }
 33         function run3() {
 34             window.location.href = "http://www.baidu.com";
 35         }
 36     </script>
 37     
 38     
 39     </html>             

示例代码window对象

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2     <html>
  3     <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5     <title>Insert title here</title>
  6     </head>
  7     <body>
  8         
  9         <span id="spanid">
 10             我是文本
 11         </span>
 12         
 13         <input type="button" value="移动" onclick="run()"/>   <br />
 14         
 15         <input type="button" value="新窗口" onclick="run2()"/><br />
 16         
 17         <input type="button" value="定时1" onclick="run3()"/><br />
 18         
 19         <input type="button" value="定时2" onclick="run4()"/><br />
 20         
 21         <input type="button" value="清除" onclick="run5()"/><br />
 22         
 23     </body>
 24         
 25         <script type="text/javascript">
 26             /* 
 27                 window对象
 28                     * alert()       弹出提示框
 29                     * confirm()     询问框
 30                         * 默认提供了2个按钮,一个确定和取消
 31                         * 点击确定,返回是true,点击取消,返回false
 32                     * moveBy(20,20)
 33                         * 窗口移动
 34                     * open()
 35                         * URL           设置新窗口的地址
 36                         * name          名称
 37                         * features      设置窗口的特征
 38                         
 39                     * close()
 40                         * 关闭浏览器
 41                         
 42                     * setInterval("函数名称",3000)      每隔3秒钟执行函数
 43                     * setTimeout("函数名称",3000)       3秒后执行该函数
 44                         
 45                     * clearInterval()   
 46                     * clearTimeout()    
 47             */
 48             
 49             //alert("hehe");
 50             
 51             /* if(window.confirm("确定删除吗??")){
 52                 // 点击确定
 53                 alert("删除成功");
 54             }else{
 55                 // 点击取消
 56                 alert("取消了");
 57             } */
 58             
 59             /* function run(){
 60                 window.moveBy(20, 20);
 61             } */
 62             
 63             // 弹出新窗口
 64             /* function run2(){
 65                 window.open("http://www.baidu.com", "", "width=400,height=200");
 66             } */
 67             
 68             function show(){
 69                 alert("abc");   
 70             }
 71             var m;
 72             function run3(){
 73                 m = window.setInterval("show()", 3000);
 74             }
 75             function run4(){
 76                 window.setTimeout("show()", 3000);
 77             }
 78             
 79             function run5(){
 80                 window.clearInterval(m);
 81             }
 82             
 83         </script>
 84     </html>

DOM 文档对象模型

    * DOM   文档对象模型

    * 文档:标记型文档  (html、xml)
    * 对象:属性和行为(方法)
    * 模型:共性特征体现

    * DOM的方式,会把标记型文档(标签、文本、属性)全部封装成对象

    * 动态的HTML
    * HTML          :封装数据
    * CSS           :设置样式
    * DOM           :操作HTML
    * JAVASCRIPT    :提供语句

DOM的解析方式

看图

Document对象

        * 方法(*****)
        * getElementById("id的名称");          通过id获取元素的名称
        * getElementsByName("name的名称");     通过name名称获取多个元素的对象(数组)
        * getElementsByTagName("标签的名称");    通过标签的名称获取多个元素的对象(数组)

        * write("文本的内容");
示例代码
  1 <!DOCTYPE html>
  2     <html>
  3     <head>
  4     <meta charset="UTF-8">
  5     <title>Insert title here</title>
  6     </head>
  7     <body>
  8     
  9         <input type="text" name="username" id="nameId" value="zhangsan1" />
 10         <br />
 11         <input type="text" name="username" value="zhangsan2" />
 12         <br />
 13         <input type="text" name="username" value="zhangsan3" />
 14         <br />
 15         <input type="text" name="username" value="zhangsan4" />
 16         <br />
 17         
 18         <ul>
 19             <li>1</li>
 20             <li>2</li>
 21         </ul>
 22     </body>
 23     
 24     <script type="text/javascript">
 25         /* 
 26          * getElementById("id的名称");         通过id获取元素的名称
 27          * getElementsByName("name的名称");        通过name名称获取多个元素的对象(数组)
 28          * getElementsByTagName("标签的名称");   通过标签的名称获取多个元素的对象(数组)
 29          */
 30         //通过ID获取
 31         var input = document.getElementById("nameId");
 32     
 33         //alert(input.value);
 34     
 35         //通过name获取
 36         var inputs = document.getElementsByName("username");
 37         //alert(inputs.length);
 38     
 39         /* for (var i = 0; i < inputs.length; i++) {
 40             var input = inputs[i];
 41             alert(input.value);
 42         } */
 43         
 44         // 通过标签名获取元素对象(返回是数组)
 45         var inputs2 = document.getElementsByTagName("input");
 46         //alert(inputs2.length);
 47         
 48         var ul = document.getElementsByTagName("ul")[0];
 49     </script>
 50     </html>
 51             

在末尾添加节点

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 </head>
  7 <body>
  8     
  9     <ul id="ulId">
 10         <li>北京</li>
 11         <li>上海</li>
 12         <li>广州</li>
 13     </ul>
 14     
 15     <input type="button" value="生成" onclick="run()" />
 16     
 17 </body>
 18 
 19     <script type="text/javascript">
 20         /* 
 21             * 需求:在ul列表下,添加子节点   <li>深圳</li>
 22                 
 23                 * 向指定的位置添加子节点
 24                     insertBefore(new,old);
 25                 
 26         */
 27         function run(){
 28             // 创建文本对象
 29             var text = document.createTextNode("深圳");
 30             // 创建元素对象
 31             var li = document.createElement("li");
 32             // 把文本加入到li下
 33             li.appendChild(text);
 34             // 获取ul
 35             var ul = document.getElementById("ulId");
 36             // 把li加入到ul下
 37             ul.appendChild(li);
 38         }
 39         
 40     </script>
 41 </html>
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 

Element对象(先获取到元素的对象)

        * Element对象(先获取到元素的对象)
            * getAttribute("属性名称");
            * setAttribute("属性名称","属性值");
                * 设置或者修改属性的值

            * removeAttribute("属性名称");

        * 获取ul下所有的li标签的节点(*****)
            * ul.getElementsByTagName("li");

demo

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 </head>
  7 <body>
  8     
  9     <input type="text" name="username" id="nameId" value="zhangsan" />
 10     
 11     <ul id="ulId">
 12         <li>北京</li>
 13         <li>上海</li>
 14         <li>广州</li>
 15     </ul>
 16     
 17 </body>
 18 
 19     <script type="text/javascript">
 20         /* 
 21             * Element对象(先获取到元素的对象)
 22                 * getAttribute("属性名称");
 23                 * setAttribute("属性名称","属性值");
 24                     * 设置或者修改属性的值
 25                     
 26                 * removeAttribute("属性名称");
 27                     
 28             * 获取ul下所有的li标签的节点
 29                 * ul.getElementsByTagName("li");
 30         */
 31         
 32         var input = document.getElementById("nameId");
 33         //alert(input.value);
 34         //alert(input.getAttribute("value"));
 35         
 36         
 37         // 获取ul下所有的li标签的节点
 38         // 先获取ul的节点
 39         var ul = document.getElementById("ulId");
 40         var lis = ul.childNodes;
 41         // alert(lis.length);
 42         
 43         var lis2 = ul.getElementsByTagName("li");
 44         alert(lis2.length);
 45         
 46     </script>
 47 </html>

Node节点对象

        * nodeName      节点名称
        * nodeType      节点类型
        * nodeValue     节点值

                            元素              属性          文本
            nodeName        大写元素名称      属性名称        #text
            nodeType        1               2           3
            nodeValue       null            属性的值        文本的内容

        IE6-8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IE9-11 Chrome FireFox
        firstChild 第一个节点 ? ? ? ? ? ? ? ? firstElementChild?第一个节点
        lastChild最后一个节点、 ? ? ? ? ? ? ? lastElementChild 最后一个节点
        nextSibling 下一同级节点 ? ? ? ? ? ? ?nextElementSibling?下一同级节点
        previousSibling 上一同级节点 ? ? ? ? ?previousElementSibling?上一同级节点

        例子:
        <ul>
            <li></li>
        </ul>
        * 通过ul获取第一个li的子节点,使用firstElementChild(条件:IE9-11 Chrome FireFox)
            * 如果不是该种浏览器,使用firstChild

        <span>
            有文本内容
        </span> 
        * 通过span获取文本内容,使用firstChild

        * hasChildNodes()       检测是否包含子节点
        * hasAttributes()       是否包含属性

demo

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 </head>
  7 <body>
  8     
  9     <input type="text" name="username" id="nameId" value="zhangsan" />
 10     
 11     <span id="spanId">
 12         这是文本的内容
 13     </span>
 14     
 15     <ul id="ulId">
 16         <li>北京</li>
 17         <li id="sh">上海</li>
 18         <li>广州</li>
 19     </ul>
 20     
 21 </body>
 22 
 23     <script type="text/javascript">
 24         /* 
 25                             元素              属性          文本
 26             nodeName        大写元素名称      属性名称        #text
 27             nodeType        1               2           3
 28             nodeValue       null            属性的值        文本的内容
 29             
 30             * parentNode    获取父节点
 31             * firstChild    firstElementChild
 32             
 33             * hasChildNodes()       检测是否包含子节点
 34             * hasAttributes()       是否包含属性
 35             
 36         */
 37         var input = document.getElementById("nameId");
 38         //alert(input.nodeName);                // INPUT
 39         //alert(input.nodeType);                // 1
 40         //alert(input.nodeValue);               // null
 41         
 42         var attr = input.getAttributeNode("name");
 43         //alert(attr.nodeName);                 // name
 44         //alert(attr.nodeType);                 // 2
 45         //alert(attr.nodeValue);                // username 
 46         
 47         var span = document.getElementById("spanId");
 48         var text = span.firstChild;
 49         //alert(text.nodeName);                 // #text
 50         //alert(text.nodeType);                 // 3
 51         //alert(text.nodeValue);                    // 这是文本的内容  
 52         
 53         // 获取上海的节点
 54         var sh = document.getElementById("sh");
 55         var ul = sh.parentNode;
 56         // alert(ul.id);
 57         
 58         // 元素对象
 59         var bj = ul.firstElementChild;
 60         //alert(bj.nodeType);
 61         
 62         // 判断是否包含子节点
 63         //alert(ul.hasChildNodes());
 64         //alert(ul.hasAttributes());
 65         
 66     </script>
 67 </html>

操作DOM树

        * appendChild()             末尾添加子节点
        * insertBefore(new,old)     在指定的位置之前添加
        * removeChild(node)         删除节点
        * replaceChild(new,old)     替换节点

        * 父节点调用

        * * cloneNode(boolean)
            * 默认是false,false不会复制子节点
            * 设置true,复制子节点


       * innerHTML可以获取和设置标签的文本内容

demo

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      5 <title>Insert title here</title>
      6 </head>
      7 <body>
      8     
      9     <ul>
     10         <li>北京</li>
     11         <li id="sh">上海</li>
     12         <li>深圳</li>
     13     </ul>
     14     
     15     <ul>
     16         <li>小时代1</li>
     17         <li id="xsd2">小时代2</li>
     18         <li>小时代3</li>
     19     </ul>
     20     
     21     <button id="btnId" onclick="run()">
     22         我是按钮
     23     </button>
     24     
     25     <span id="spanId">
     26         
     27     </span>
     28     
     29 </body>
     30 
     31     <script type="text/javascript">
     32         /* 
     33             父节点.replaceChild(new,old)       替换节点
     34             父节点.removeChild(node);
     35             
     36             * cloneNode(boolean)
     37                 * 默认是false,false不会复制子节点
     38                 * 设置true,复制子节点
     39         */
     40         /*
     41         // 替换节点
     42         document.getElementById("sh").onclick = function(){
     43              var sh = document.getElementById("sh");
     44             // 获取上海的父节点
     45             var ul = sh.parentNode;
     46             // 获取小时代2的节点
     47             var xsd2 = document.getElementById("xsd2");
     48             ul.replaceChild(xsd2, sh); 
     49             
     50             // this 当前对象
     51             //var ul = this.parentNode;
     52             var xsd2 = document.getElementById("xsd2");
     53             this.parentNode.replaceChild(xsd2,this);
     54         };
     55         */
     56         
     57         // 删除节点
     58         document.getElementById("sh").onclick = function(){
     59             // this.parentNode.removeChild(this);
     60             var sh = document.getElementById("sh");
     61             // 获取上海的父节点
     62             var ul = sh.parentNode;
     63             // 删除
     64             ul.removeChild(sh);
     65         };
     66         
     67         // 复制button按钮,添加到span标签中
     68         function run(){
     69             var btn = document.getElementById("btnId");
     70             // 复制按钮
     71             var newbtn = btn.cloneNode(true);
     72             // 获取span标签
     73             var span = document.getElementById("spanId");
     74             // 添加子节点
     75             span.appendChild(newbtn);
     76         }
     77         
     78     </script>
     79 </html>
     80 
     81 
     82 

demo2

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 </head>
  7 <body>
  8 
  9     输入姓名:<input type="text" name="username" id="nameId" onfocus="run()" onblur="run2()"/><span id="spanId2" style="color: red" ></span><br/>
 10     
 11     <span id="spanId">
 12         我是span的区域
 13     </span>
 14     
 15 </body>
 16     
 17     <script type="text/javascript">
 18         /* 
 19             * innerHTML获取和设置标签的文本内容
 20             * onfocus="run()"
 21             * onblur="run2()"
 22         */
 23         var span = document.getElementById("spanId");
 24         //alert(span.innerHTML);
 25         
 26         // 输入提示
 27         function run(){
 28             // 获取span的标签
 29             var span2 = document.getElementById("spanId2");
 30             span2.innerHTML = "请您输入4-18个特殊字符";
 31         }
 32         
 33         // 
 34         function run2(){
 35             // 获取用户输入的值
 36             // ajax 
 37             var span2 = document.getElementById("spanId2");
 38             span2.innerHTML = "您输入的用户已存在ss";
 39         }
 40         
 41     </script>
 42 </html>

demo全选练习

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 </head>
  7 <body>
  8     
  9     <input type="checkbox" id="boxId" onclick="selOrNo()"/>全选/全不选<br/>
 10     
 11     <input type="checkbox" name="love" />篮球<br/>
 12     <input type="checkbox" name="love" />足球<br/>
 13     <input type="checkbox" name="love" />排球<br/>
 14     <input type="checkbox" name="love" />冰球<br/>
 15     
 16     <input type="button" value="全选" onclick="selAll()"/>
 17     <input type="button" value="全不选" onclick="selNo()"/>
 18     <input type="button" value="反选" onclick="selOth()"/>
 19     
 20 </body>
 21     
 22     <script type="text/javascript">
 23         /* 
 24             type="checkbox" 属性checked=true
 25             * 设置标签的checked属性
 26             * 获取name名称是love的所有的input标签,返回数组
 27             * 循环遍历,拿到每一个input标签
 28             * 设置属性
 29         */
 30         // 全选
 31         function selAll(){
 32             // 先获取name名称是love的所有的input标签
 33             var inputs = document.getElementsByName("love");
 34             // 循环遍历,拿到每一个input
 35             for(var i=0;i<inputs.length;i++){
 36                 var input = inputs[i];
 37                 // 设置属性
 38                 input.checked = true;
 39                 //input.setAttribute("checked","true");
 40             }
 41         }
 42         
 43         // 全不选
 44         function selNo(){
 45             // 先获取name名称是love的所有的input标签
 46             var inputs = document.getElementsByName("love");
 47             // 循环遍历,拿到每一个input
 48             for(var i=0;i<inputs.length;i++){
 49                 var input = inputs[i];
 50                 // 设置属性
 51                 input.checked = false;
 52                 //input.removeAttribute("checked");
 53             }
 54         }
 55         
 56         
 57         // 反选
 58         function selOth(){
 59             // 先获取name名称是love的所有的input标签
 60             var inputs = document.getElementsByName("love");
 61             // 循环遍历,拿到每一个input
 62             for(var i=0;i<inputs.length;i++){
 63                 var input = inputs[i];
 64                 // 判断,当前的input标签是否被选中,如果选中,设置false,相反。
 65                 /* if(input.checked == false){
 66                     input.checked = true;
 67                 }else{
 68                     input.checked = false;
 69                 } */
 70                 
 71                 input.checked = !input.checked;
 72             }
 73         }
 74         
 75         function selOrNo(){
 76             var box = document.getElementById("boxId");
 77             if(box.checked == true){
 78                 // 全选
 79                 selAll();
 80             }else{
 81                 // 全不选
 82                 selNo();
 83             }
 84         }
 85         
 86     </script>
 87 </html>
 88 
 89 
 90 
 91 
 92 
 93 

demo列表左右选择

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title></title>
  6 <style type="text/css">
  7 * { margin:0; padding:0; }
  8 div.centent {
  9    float:left;
 10    text-align: center;
 11    margin: 10px;
 12 }
 13 span { 
 14     display:block; 
 15     margin:2px 2px;
 16     padding:4px 10px; 
 17     background:#898989;
 18     cursor:pointer;
 19     font-size:12px;
 20     color:white;
 21 }
 22 </style>
 23 
 24 
 25 </head>
 26 <body>
 27     <div class="centent">
 28         <select multiple="multiple" id="select1" style="width:100px;height:160px;">
 29             <option value="1">选项1</option>
 30             <option value="2">选项2</option>
 31             <option value="3">选项3</option>
 32             <option value="4">选项4</option>
 33             <option value="5">选项5</option>
 34             <option value="6">选项6</option>
 35             <option value="7">选项7</option>
 36         </select>
 37         <div>
 38             <span id="add" >选中添加到右边&gt;&gt;</span>
 39             <span id="add_all" >全部添加到右边&gt;&gt;</span>
 40         </div>
 41     </div>
 42 
 43     <div class="centent">
 44         <select multiple="multiple" id="select2" style="width: 100px;height:160px;">
 45             <option value="8">选项8</option>
 46         </select>
 47         <div>
 48             <span id="remove">&lt;&lt;选中删除到左边</span>
 49             <span id="remove_all">&lt;&lt;全部删除到左边</span>
 50         </div>
 51     </div>
 52 
 53 </body>
 54 <script type="text/javascript">
 55     /* 
 56         * 选中左边的数据的条目,把选中的添加到右边的选择框中
 57         * select标签的属性
 58             * selected 可以判断是否被选中(如果是true,说明被选中,如果是false,说明没有被选中)
 59         * 先获取option的所有的标签,循环遍历,判断哪一个被选中
 60         * 添加到select2标签下
 61     */
 62     
 63     // 向右边添加条目
 64     document.getElementById("add").onclick = turnRight;
 65     
 66     // 全不添加到右边
 67     document.getElementById("add_all").onclick = function(){
 68         // 获取select2
 69         var select2 = document.getElementById("select2");
 70         // 先获取select1
 71         var select1 = document.getElementById("select1");
 72         // 获取select1下的所有的子节点
 73         var options = select1.getElementsByTagName("option");
 74         // 循环遍历,拿到每一个,加入到select2中
 75         for(var i=0;i<options.length;i++){
 76             var option = options[i];
 77             select2.appendChild(option);
 78             i--;
 79         }
 80     };
 81     
 82     // 从右边到左边
 83     document.getElementById("remove").onclick = turnLeft;
 84     
 85     // 全不添加到右边
 86     document.getElementById("remove_all").onclick = function(){
 87         // 获取select2
 88         var select2 = document.getElementById("select2");
 89         // 先获取select1
 90         var select1 = document.getElementById("select1");
 91         // 获取select2下的所有的子节点
 92         var options = select2.getElementsByTagName("option");
 93         // 循环遍历,拿到每一个,加入到select1中
 94         for(var i=0;i<options.length;i++){
 95             var option = options[i];
 96             select1.appendChild(option);
 97             i--;
 98         }
 99     };
100     
101     // 双击
102     document.getElementById("select1").ondblclick = turnRight;
103     
104     // 向右边添加条目
105     function turnRight(){
106         // 先获取select2
107         var select2 = document.getElementById("select2");
108         // 先获取select1对象
109         var select1 = document.getElementById("select1");
110         // 需要获取所有的option元素对象
111         var options = select1.getElementsByTagName("option");
112         // 循环遍历,拿到每一个option对象,判断当前的option是否被选中
113         for(var i=options.length-1;i>=0;i--){
114             // 拿到每一个option对象
115             var option = options[i];
116             // 判断当前的option是否被选中,如果被选中了,添加在select2
117             if(option.selected == true){
118                 // 添加到select2中
119                 select2.appendChild(option);
120                 //i--;
121             }
122         }
123     }
124     
125     document.getElementById("select2").ondblclick = turnLeft;
126     
127     // 向左边添加
128     function turnLeft(){
129         // 先获取select2
130         var select2 = document.getElementById("select2");
131         // 先获取select1对象
132         var select1 = document.getElementById("select1");
133         // 需要获取所有的option元素对象
134         var options = select2.getElementsByTagName("option");
135         // 循环遍历,拿到每一个option对象,判断当前的option是否被选中
136         for(var i=options.length-1;i>=0;i--){
137             // 拿到每一个option对象
138             var option = options[i];
139             // 判断当前的option是否被选中,如果被选中了,添加在select1
140             if(option.selected == true){
141                 // 添加到select1中
142                 select1.appendChild(option);
143                 //i--;
144             }
145         }
146     }
147         
148 </script>
149 </html>
150 
151 
152 
153 
154 
155 
156 
157 
158 
159 
160 

demo 省市选择器

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 </head>
  7 <body>
  8     
  9     <select id="select1" onchange="run(this.value)">
 10         <option>--请选择--</option>
 11         <option value="北京">北京</option>
 12         <option value="山西">山西</option>
 13         <option value="河北">河北</option>
 14         <option value="日本">日本</option>
 15     </select>
 16     
 17     <select id="select2">
 18         
 19     </select>
 20 
 21 </body>
 22 
 23     <script type="text/javascript">
 24         /* 
 25             * 通过传入过来的值,和数组进行对比,如果对比成功,获取数组后面的值,加入到select2
 26             * 改变事件
 27                 * onchange
 28             * 和数组的值进行对比
 29             
 30         */
 31         var arr = [];
 32         arr[0] = new Array("北京","海淀区","昌平区","朝阳区","顺义区","怀柔区","大兴区","东城区","西城区");
 33         arr[1] = new Array("山西","太原","大同","晋中","临汾","运城","吕梁");
 34         arr[2] = new Array("河北","石家庄","保定","邯郸","衡水","沧州","承德","张家口","秦皇岛","唐山");
 35         arr[3] = new Array("日本","东京","大阪","北海道","广岛","长崎","神户","横滨","神奈川");
 36         
 37         function run(val){
 38             // 获取select2
 39             var select2 = document.getElementById("select2");
 40             // 清空select2(删除select2下所有的子节点)
 41             // 获取所有的子节点
 42             var options = select2.getElementsByTagName("option");
 43             // 循环遍历,拿到每一个option,通过select2删除
 44             for(var i=options.length-1;i>=0;i--){
 45                 var option = options[i];
 46                 // 删除
 47                 select2.removeChild(option);
 48             }
 49             
 50             // alert("haha");
 51             // alert(val);
 52             // 先遍历arr数组
 53             for(var x=0;x<arr.length;x++){
 54                 var inarr = arr[x];
 55                 var inStr = inarr[0];
 56                 // alert(inStr);
 57                 // 传过来的值和inStr进行判断,如果相等,获取数组后面的内容
 58                 if(inStr == val){
 59                     // 循环遍历,获取数组除了第0个位置的元素,拿到后面所有的元素
 60                     for(var y=1;y<inarr.length;y++){
 61                         // 获取文本内容
 62                         var str = inarr[y];
 63                         // alert(str);
 64                         // 把文本内容加入到select2中
 65                         // 创建文本对象
 66                         var text = document.createTextNode(str);
 67                         // 创建元素对象
 68                         var option = document.createElement("option");
 69                         // 把文本添加到元素下面
 70                         option.appendChild(text);
 71                         // 把元素添加到select2
 72                         select2.appendChild(option);
 73                     }
 74                 }
 75             }
 76         }
 77         
 78     </script>
 79 </html>
 80 
 81 
 82 
 83 
 84 
 85 
 86 

事件整理

    * 鼠标移动
        * onmousemove   
        * onmouseout    从元素上移开
        * onmouseover   移动到元素上

  1 <html>
  2          <script language="JavaScript">
  3             function mouseovertest(){
  4                document.getElementById("info").value = "鼠标在输入框上";}
  5             function mouseouttest(){
  6             document.getElementById("info").value= "鼠标在输入框外";}
  7          </script>
  8          <body>
  9          <input type="text" id="info" onmouseover="mouseovertest();"                    
 10         onmouseout="mouseouttest();"/>
 11          </body>
 12     </html>

    * 鼠标点击操作    
        * onclick       单击
        * ondblclick    双击

  1 <html>
  2         <script language="JavaScript">
  3          function addFile(){
  4                 var file = document.createElement('input');
  5                 file.setAttribute('id', 'temp_file');
  6                 file.setAttribute('type', 'file');
  7                 document.body.appendChild(file);
  8  }
  9         </script>
 10         <body>
 11         <form action="uploadFile" method="post">
 12          <input type="button" value="添加附件" onclick="addFile();">
 13         </form>
 14         </body>
 15     </html>

    * 加载与卸载事件
        * onload        加载(一般作用body标签上)
        * onunload      卸载

    * 聚焦和离焦
        * onfocus
        * onblur

    * 键盘事件
        * onkeydown
        * onkeyup
        * onkeypress

    * 改变事件 
        * onchange  值改变,触发事件

    * 控制表单提交 
        * onsubmit  

最后对BOM和DOM总结:

* BOM   
    * window
        * alert()       提示框
        * confirm()     询问框
            * 确定和取消按钮
        * open()    弹出新的窗口
            * url   
            * name
            * 特征

        * close();  关闭窗口

        * setInterval("方法名称",毫秒值)   每隔多少毫秒执行方法,返回唯一的id值
        * setTimeout("方法名称",毫秒值)        过多少毫秒执行方法,返回唯一的id值

        * clearInterval(id);
        * clearTimeout(id);

    * history
        * back();   
        * forward();
        * go(1或者-1)

    * location
        * href=""   获取和设置网页的链接


* DOM
    * DOM   Document Object Model   文档对象模型
    * DOM解析HTML,把标记型文档全部都封装成对象
        * 元素(标签)    属性  文本

    * Document  :代表整个文档 
    * Element   :元素(标签)对象
    * Attr      :属性对象
    * Text      :文本对象
    * Node      :节点对象

    * document对象
        * getElementById("id名称");
        * getElementsByName("name名称");  数组
        * getElementsByTagName("标签名");  数组

        * write("文本内容");

        * 在ul列表添加子节点
            createTextNode("文本内容");
            createElement("标签名称");
            appendChild(node);

    * Element对象
        * getAttribute("属性名称");
        * setAttribute("属性名称","属性值");
        * removeAttribute("属性名称");

        * 获取指定元素下的所有子节点
            ul.getElementsByTagName("子节点的标签名称");

    * Node节点对象

        * 操作DOM节点树
            appendChild()
            insertBefore(new,old)   在指定的节点之前插入新的节点
            removeChild(node)   删除节点
            replaceChild(new,old)   替换节点

            cloneNode(boolean)  

    * innerHTML
        * 获取和设置文本内容
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值