zoukankan      html  css  js  c++  java
  • DOM常用对象

    一、select对象

      HEML中的下拉列表

      属性:

        1.options 获得当前select下所有option

        2.options[i] 获得当前select下i位置的option

        3.selectedIndex 获得当前选中的option的下标

        4.size 设置或返回下拉列表中的可见行数。

        5.length 返回下拉列表中的选项数目。

        6.multiple 设置或返回是否选择多个项目。

        7.id 设置或返回下拉列表的 id。

        8.name 设置或返回下拉列表的名称。

      方法:

        1.add(新option对象) 向下拉列表添加一个选项。

        2.blur() 从下拉列表移开焦点。

        3.remove(index) 从下拉列表中删除一个选项。

      时间:

        1.onchange 当改变选择时调用的事件句柄。

    二、option对象

      HTML 表单中下拉列表中的一个选项。

      创建:var newOpt=new Option(innerHTML,value);//创建option对象同时,设置对象的innerHTML和value属性

      一句话:创建,设置,追加: select.add(new Option(innerHTML,value));

      属性:

        1.index 获取当前option的下标位置,专用于删除

        2.selected 设置或返回 selected 属性的值。true false

      示例:联动菜单

      

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <title>联动菜单</title>
     5 <meta charset="utf-8" />
     6 <script>
     7     /*使用 HTML DOM 的方式实现联动菜单*/
     8     var categories=[
     9 {"id":10,"name":'男装',"children":[
    10     {"id":101,"name":'正装'},
    11     {"id":102,"name":'T恤'},
    12     {"id":103,"name":'裤衩'}
    13 ]},
    14 {"id":20,"name":'女装',"children":[
    15     {"id":201,"name":'短裙'},
    16     {"id":202,"name":'连衣裙'},
    17     {"id":203,"name":'裤子',"children":[
    18         {"id":2031,"name":'长裤'},
    19         {"id":2031,"name":'九分裤'},
    20         {"id":2031,"name":'七分裤'}
    21     ]},
    22 ]},
    23 {"id":30,"name":'童装',"children":[
    24     {"id":301,"name":'帽子'},
    25     {"id":302,"name":'套装',"children":[
    26         {"id":3021,"name":"0-3岁"},
    27         {"id":3021,"name":"3-6岁"},
    28         {"id":3021,"name":"6-9岁"},
    29         {"id":3021,"name":"9-12岁"}
    30     ]},
    31     {"id":303,"name":'手套'}
    32 ]}
    33 ];
    34 
    35 //专门遍历一级分类 data保存当前同级分类的数组
    36 function loadData(data){
    37     //创建一个select对象
    38     //在select对象中追加一个新option,内容为请选择"-请选择-",值为0
    39     //遍历data中每个类别对象
    40     // 每遍历一个,就要在select中追加一个option,内容是当前对象的name属性值为当前对象的id属性
    41     //
    42     var select=document.createElement("select");
    43     select.add(new Option("-请选择-",0));
    44     for (var key in data)
    45     {
    46         select.add(new Option(data[key].name,data[key].id));
    47     }
    48     //为新创建的select对象,添加onchange时间
    49     select.onchange=function(){
    50         //this-->select
    51         
    52         //将当前select后的元素都删除
    53         var parent=this.parentNode;
    54         while(parent.lastChild!=this){
    55             parent.removeChild(parent.lastChild);
    56         }
    57 
    58         /*
    59             获得和选中项位置对应的类别子对象
    60         */
    61         var category=data[this.selectedIndex-1];
    62         if(category!=undefined&&category.children){
    63             loadData(category.children);
    64         }
    65     }
    66     document.querySelector("#category").appendChild(select);
    67 
    68 }
    69 
    70 window.onload=function(){
    71     loadData(categories);
    72 }
    73     
    74 </script>
    75 </head>
    76 <body>
    77     <div id="category"></div>
    78 </body>
    79 </html>
    View Code

    三、table对象、tableRow对象、tableCell对象

      table对象

        属性:

          1.tHead 返回表格的 THead 对象。如果不存在该元素,则为 null。

          2.tFoot 返回表格的 TFoot 对象。如果不存在该元素,则为 null。

          3.tBodies 返回包含表格中所有 tbody 的一个数组。

          4.rows 获得表中所有行对象; rows[i] 获得表中小标为i的一个行对象;

          5.width 设置或返回表格的宽度。

          6.border 设置或返回表格边框的宽度。

        方法:

          1.insertRow(rowIndex) 用于在表格中的指定位置插入一个新行。不写或-1为追加到最后一行

          2.deleteRow(rowIndex) 从表格删除一行。

          3.createTHead() 在表格中创建一个空的 tHead 元素; deleteTHead() 从表格删除 tHead 元素及其内容。

          4.createTFoot() 在表格中创建一个空的 tFoot 元素; deleteTFoot() 从表格删除 tFoot 元素及其内容。

      tableRow对象 代表table对象中的某一个tr对象

        属性:

          1.cells: 当前行中所有td对象

          2.cells[i]: 获得当前行中下标为i的td

          3.rowIndex: 当前行的下标位置,专用于删除行

        方法:

          1.var newCell=insertCell(index)

            核心DOM:var td=document.createElement("td");tr.appendChild(td);

          2.deleteCell(index)

      tableCell对象

        属性:cellIndex

      示例:动态操作表格

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <title>动态操作表格</title>
     5 <meta charset="utf-8" />
     6 <style>
     7     table{width:500px; border-collapse:collapse;
     8         text-align:center;
     9     }
    10     th,td{border:1px solid #ccc}
    11 </style>
    12 <script>
    13     var data=[
    14 {"id":1001,"name":'可口可乐',"price":2.5,"count":3000},
    15 {"id":1003,"name":'百事可乐',"price":2.5,"count":5000},
    16 {"id":1011,"name":'非常可乐',"price":2.3,"count":1000}
    17     ];
    18     window.onload=function(){
    19         var tbody=
    20         document.querySelector("#data table tbody");
    21         
    22         //遍历data数组中每个商品对象
    23         for(var i=0;i<data.length;i++){
    24         //    每遍历一个对象,就追加一个新行tr
    25             var tr=tbody.insertRow();
    26         //    遍历当前对象中每个属性
    27             for(var key in data[i]){
    28         //        每遍历一个,就在tr中新增一个td
    29                 var td=tr.insertCell();
    30         //      将td的内容设置为当前对象的当前属性的值
    31         //      如果当前属性名为"price"
    32         //          则前加"&yen;",再toFixed(2)
    33 td.innerHTML=
    34     key=="price"?"&yen;"+data[i][key].toFixed(2):
    35                  data[i][key];
    36             }
    37         //遍历完当前对象所有属性后,添加"删除按钮列"
    38             //Step1: 向tr中追加新td
    39             var td=tr.insertCell(4);
    40             //Step2: 创建button元素对象btn
    41             var btn=document.createElement("button");
    42             //Step3: 修改btn的内容为"删除"
    43             btn.innerHTML="删除";
    44             //Step4: 设置btn的onclick为"删除函数对象"
    45             btn.onclick=function(){
    46                 var tr=this.parentNode //td
    47                            .parentNode; //tr
    48                 //Step1: 获得正在删除商品的名称,pname
    49                 //       (获得tr中下标为1的格中的内容)
    50                 var pname=tr.cells[1].innerHTML;
    51     //Step2: 弹出确认框:"是否继续删除"+pname+"吗?"
    52     //       如果用户选择确认,才删除当前行
    53                 if(confirm(
    54                     "是否继续删除 "+pname+" 吗?")){
    55                     tr.parentNode.removeChild(tr);
    56                 }
    57             };
    58             //自动调用btn.onclick(); this-->当前btn
    59             //Step5: 在td下追加btn
    60             td.appendChild(btn);
    61         }
    62     }
    63 </script>
    64 </head>
    65 <body>
    66     <div id="data">
    67         <table>
    68             <thead>
    69                 <tr>
    70                     <th>编号</th>
    71                     <th>名称</th>
    72                     <th>单价</th>
    73                     <th>数量</th>
    74                     <th>操作</th>
    75                 </tr>
    76             </thead>
    77             <tbody>
    78                 
    79             </tbody>
    80         </table>
    81     </div>
    82 </body>
    83 </html>
    View Code

     四、Form对象

      1.查找form document.forms[序号|name]

      2.数据采集的元素 document.forms[序号|name].elements[序号|name]

      属性:

        1.elements[] 包含表单中所有元素的数组。

        2.method 设置或返回将数据发送到服务器的 HTTP 方法。

      事件:

        1.reset() 把表单的所有输入元素重置为它们的默认值。

        2.submit 提交表单。

      事件句柄:

        1.onreset 在重置表单元素之前调用。

        2.onsubmit 在提交表单之前调用。

      示例:表单验证

      

     1 <!doctype html>
     2 <html>
     3  <head>
     4     <meta charset="UTF-8">
     5     <title>实现带样式的表单验证
     6 </title>
     7     <link rel="Stylesheet" href="css/3_2.css" />
     8     <script src="js/3_2.js"></script>
     9  </head>
    10  <body>
    11     <form>
    12         <h2>增加管理员</h2>
    13         <table>
    14             <tr>
    15                 <td>姓名:</td>
    16                 <td>
    17                     <input name="userName"/>
    18                     <span>*</span>
    19                 </td>
    20                 <td>
    21                     <div class="vali_Info">
    22                         10个字符以内的字母、数字和下划线的组合
    23                     </div>
    24                 </td>
    25             </tr>
    26             <tr>
    27                 <td>密码:</td>
    28                 <td>
    29 <input type="password" name="pwd"/>
    30                     <span>*</span>
    31                 </td>
    32                 <td>
    33                     <div class="vali_Info">6位数字</div>
    34                 </td>
    35             </tr>
    36             <tr>
    37                 <td></td>
    38                 <td colspan="2">
    39 <input type="submit" value="保存"/>
    40 <input type="reset" value="重填"/>
    41                 </td>
    42             </tr>                
    43         </table>
    44     </form>
    45  </body>
    46 </html>
    View Code
     1 table{width:700px}
     2 /*父元素下的第1个,第n个,最后一个td子元素*/
     3 td:first-child{width:60px}
     4 /*IE不支持nth-child*/
     5 td:nth-child(2){width:200px}
     6 /*IE*/
     7 td:first-child+td{width:200px}
     8 /*IE不支持--可以靠总宽度来调节
     9 td:last-child{340px}*/
    10 td span{color:red}
    11 
    12 .vali_Info{/* 页面初始,验证消息不显示 */
    13     display:none;
    14 }
    15 .txt_focus{/*只要文本框获得焦点时,给文本框穿*/
    16     border-top:2px solid black;
    17     border-left:2px solid black;
    18 }
    19 
    20 .vali_success,.vali_fail{
    21     background-repeat:no-repeat;
    22     background-position:left center;
    23     display:block;
    24 }
    25 /* 验证消息:验证通过时div的样式 */
    26 .vali_success{
    27     background-image:url("../images/ok.png");
    28     padding-left:20px;
    29     width:0px;height:20px;
    30     overflow:hidden;
    31 }
    32 /* 验证消息:验证失败时div的样式 */
    33 .vali_fail{
    34     background-image:url("../images/warning.png");
    35     border:1px solid red;
    36     background-color:#ddd;
    37     color:Red;
    38     padding-left:30px;
    39 }
    View Code
     1 window.$=HTMLElement.prototype.$=function(selector){
     2 return (this==window?document:this).querySelectorAll(selector);
     3 }
     4 /*当文本框获得焦点时:
     5     给当前文本框穿txt_focus
     6     同时找到旁边div,脱掉衣服*/
     7 window.onload=function(){
     8     var form=document.forms[0];//找到第1个form对象
     9     //找到姓名和密码文本框对象
    10     var txtName=form.elements["userName"];
    11     var txtPwd=form.elements["pwd"];
    12     /*为form绑定提交事件*/
    13     form.onsubmit=function(){
    14         //依次调用每个文本框的验证方法
    15         //只有所有验证都返回true,结果才为true
    16         //只要有一个验证失败(返回false),就返回false
    17         //    取消事件
    18         var r=true;
    19         //找到姓名文本框,调用文本框的onblur方法
    20         r=txtName.onblur()&&txtPwd.onblur();
    21         if(!r){//如果r验证未通过,则取消提交事件
    22             var e=window.event||arguments[0];
    23             if(e.preventDefault){
    24                 e.preventDefault() //DOM
    25             }else{    
    26                 e.returnValue=false //IE8  
    27             }
    28         }
    29     }
    30     //为两个文本框对象绑定相同的获得焦点事件处理函数
    31     txtName.onfocus=txtPwd.onfocus=function(){
    32         this.className="txt_focus";
    33         //找到this旁边的div,脱掉衣服
    34         this.parentNode
    35             .parentNode
    36             .$("div")[0]
    37             .removeAttribute("class");
    38     }
    39     txtName.onblur=valiName;
    40     //txtName.onblur() this-->txtName
    41     txtPwd.onblur=valiPwd;
    42     
    43 }
    44 function valiName(){//专门验证姓名文本框的方法
    45     //当前文本框对象脱衣服
    46     this.className="";
    47     //找到旁边div
    48     var div=this.parentNode.parentNode.$("div")[0];
    49     //使用正则表达式验证当前文本框的内容是否正确
    50     var r=/^w{1,10}$/.test(this.value);
    51     //    如果正确,给div穿vali_success
    52     //              否则穿vali_fail
    53     div.className=r?"vali_success":"vali_fail";
    54     //返回正则表达式的验证结果
    55     return r;
    56 }
    57 function valiPwd(){//专门验证密码文本框的方法
    58     this.className="";
    59     var div=this.parentNode.parentNode.$("div")[0];
    60     var r=/^d{6}$/.test(this.value);
    61     div.className=r?"vali_success":"vali_fail";
    62     return r;
    63 }
    View Code
  • 相关阅读:
    IOS添加pch预编译文件
    UITableview控件基本使用
    两种单例模式的写法
    提交app Store审核时,Missing 64-bit support问题的解决办法
    IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换
    获取UITableView每行中不同的UITextField输入的内容(例如修改登陆密码)
    UITextField常用属性归纳:文本框样式、文字样式、键盘样式、左右视图样式、清除按钮设置等,iosuitextfield
    UITabBarController(标签栏控制器)
    iOS基础控件UINavigationController中的传值
    IOS开发之多线程
  • 原文地址:https://www.cnblogs.com/Medeor/p/4909549.html
Copyright © 2011-2022 走看看