zoukankan      html  css  js  c++  java
  • JavaWeb-04(BOM&DOM)

    JavaWeb-04

    JavaWeb-BOM&DOM

    BOM

    一、知识回想

    * BOM 概述
    * BOM 的各个对象
        * window对象
            innerHeight,innerWidth 
            document.body.clientWidth,document.body.clientHeight,
            self
            opener:超链和window.open() 
            parent : iframe和frame
            frames[]:
            三种对话框: alert(),prompt(),confirm()
            定时器: setTimeout(),setInterval() 
            模态窗体: showModalDialog() ,showModelessDialog() 
        *  History对象
            forward() ,back(),go()
        *  Location对象.
    

    二、内容

    事件(掌握,明确每一个事件发生的时机)

    1、鼠标移动事件

    * onmousemove(event) : 鼠标移动事件event是事件对象。

    名字固定 * onmouseover : 鼠标悬停事件,当鼠标移动到某个控件上面的时候发生 this: 把this写在那个标签里面就代表那个标签对象 this.style.backgroundColor : 当调用样式表中的属性的时候,假设属性中间有横杠,则应去掉. 演示样例: 当鼠标移动到p标签上的时候,p标签改变样式 * onmouseout : 鼠标移出事件,当鼠标从控件上移开的时候

    2、鼠标点击事件

    onclick : 当鼠标单击某个控件时发生
        演示样例: 当单击button时。在<p>中显示字符串 "冠希哥来了" 。
    

    3、载入与卸载事件 ####

    *载入事件(onload) : 在整个页面的元素载入完成之后发生
    *卸载事件(onunload) : 是在页面关闭时发生 
        注意: onload和onunload事件必须写在body或者图片标签里面
    

    4、聚焦与离焦事件

    *聚焦事件onfocus:是在控件获得焦点的时候发生
    *离焦事件onblur:是在控件失去焦点的时候发生
            演示样例: 文本框获得焦点的时候改变样式,失去焦点时变回原样
    

    5、键盘事件

    onkeypress,onkeyup,onkeydown
    
    *onkeypress: 按下键盘按键并松开
    *onkeydown : 按下按键发生
    *onkeyup: 松开按键
    

    6、提交与重置事件

    onsubmit,onreset
    *提交事件: 是在点击提交button后发生。(必须写在form表单中)
    *重置事件: 是在点重置交button后发生。

    演示样例: 提交表单中的数据(检查):假设是陈冠希:通过,否则不能提交数据。

    Demo

        <!doctype html>
        <html lang="en">
         <head>
          <title>重置与提交事件</title>
         </head>
        <script type="text/javascript">
        <!--
            /*
                提交事件:点击提交button时发生,函数在去目的地之前调用,依据结果决定是否去目标页面。

    注意:必须写在form标签中 */ function fun(from){ //推断姓名 var username = form.username.value; if(username==""){ alert("姓名不能为空"); return false; } //推断年龄 var age = document.forms[0].age.value; if(age=="") { alert("年龄不能为空"); return false; } if(isNaN(age)){ alert("age必须是整数"); return false; } if(age<0 || age>100){ alert("年龄必须在0~100"); return false; } return true; } function fun1(form){ return false; } //--> </script> <body> <form method="post" action="#a.html" onsubmit="return fun(this)" onreset="return fun1(this)"> 姓名:<input type="text" name="username"><br> 年龄:<input type="text" name="age"><br> <input type="submit" value="提交"><input type="reset" value="重置"> </form> </body> </html>


    7、选择与改变事件

    onselect: 仅仅能用于输入框. 当选择输入框中的文本时发生
    onchange: 用于select和文本框.对于下拉框是在选项发生变化的时候发生。对于文本框是在文本框的内容发生变化而且失去焦点时发生。
        演示样例: 当选择文本框的内容时,弹出文本框的内容
        下拉框的selectedIndex属性:代表选中某项的索引 
    

    DOM技术

    一、Dom概述?

    1、什么是DOM?

    document object model 文档对象模型
    

    2、它的作用?

    重构整个HTML 文档。

    能够加入、移除、改变或重排页面上的项目。

    3、分类?

    Core DOM :   定义了一套标准的针对不论什么结构化文档的对象 
    XML  DOM :   定义了一套标准的针对 XML 文档的对象 
    HTML DOM :   定义了一套标准的针对 HTML 文档的对象。

    4、xml介绍?

    expensible markup language : 可扩展标记语言.
            <penson>
                <name>张无忌</name>
                <age>23</age>
            </person>
    



    二、DOM树

    1、结点 :

     文档中的每一个成分都是一个节点.(包含文本也是节点)
    

    2、结点的属性

    a. nodeName(节点名称)

    元素节点的 nodeName 是标签名称 
    属性节点的 nodeName 是属性名称 
    文本节点的 nodeName 永远是 #text 
    文档节点的 nodeName 永远是 #document 
    

    b. nodeValue(节点值)

    对于文本节点,nodeValue 属性包括文本。

    对于属性节点,nodeValue 属性包括属性值。

    nodeValue 属性对于文档节点和元素节点是不可用的。

    c. nodeType(节点类型) : nodeType 属性可返回节点的类型。

    标签节点的类型值是 1
    属性节点的类型值是 2
    文本节点的类型值是 3
    

    Dom节点的属性.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>Dom节点的属性</title>
         </head>
         <body>
            <p id="p">p节点的属性</p>
            <script type="text/javascript">
            <!--
                var p = document.getElementById("p");
                alert(p.nodeType);//标签节点的类型值是 1
                var txt = p.firstChild;
                alert(txt.nodeType);//文本节点的类型值是 3
            //-->
            </script>
         </body>
        </html>
    


    dom导航节点属性.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>Document</title>
         </head>
    
         <body>
            <table border = 1>
                <tr>
                    <td>凌志玲</td>
                    <td>女</td>
                    <td>23</td>
                </tr>
                <tr>
                    <td>大s</td>
                    <td>女</td>
                    <td>28</td>
                </tr>
                <tr>
                    <td>小s</td>
                    <td>女</td>
                    <td>20</td>
                </tr>
            </table>
         </body>
        </html>
        <script type="text/javascript">
            <!--
                /*
                    问题: 拿到大s的年龄
                */
                //拿到根节点
                var html = document.documentElement ;
                //alert(html.nodeName) ;
                //拿到body节点
                var body = html.lastChild ;
                //alert(body.nodeName) ;
    
                //拿到table节点
                var table = body.firstChild ;
                //alert(table.nodeName) ;
    
                var value =  table.firstChild.firstChild.nextSibling.lastChild.firstChild.nodeValue ;
                alert(value) ;
                //怎样准确拿出?须要结合浏览器中的DOM模型来查看每个节点的细节,以至于不会拿错你想获取的目标节点
            //-->
            </script>
        <!--因为该演示样例涉及详细的IE浏览器,所以不截图-->
    

    通过方法获得标签节点对象.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>通过方法获得标签节点对象</title>
         </head>
            <script type="text/javascript">
            <!--
                /*
                    通过方法获得标签节点对象:
                            1.getElementById():
                            2.getElementsByTagName() ;
                            3.getElementsByName(): 仅仅能用于表单控件
                */
            //-->
            </script>
         <body>
            <div name = "d">刘德华</div>
            <div name = "d" id = "div">成龙</div>
            <div name = "d">陈冠希</div>
            <input type="text" name="name" value="弹出我吧"><br>
            <input type="text" name="name"><br>
            <input type="text" name="name"><br>
            <input type="text" name="name"><br>
         </body>
        </html>
        <script type="text/javascript">
        <!--
            var div = document.getElementById("div");
            alert(div.innerText);
            var divs = document.getElementsByName("d");
            alert(divs[0].innerText);
            var names = document.getElementsByTagName("input");
            alert(names[0].value);
        //-->
        </script>
    


    获取节点内容的方法.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>获取节点内容的方法</title>
         </head>
         <body>
            <h1 id = "h">明天歇息</h1>
            <script type="text/javascript">
            <!--
                var h = document.getElementById("h");
    
                //第一种方法
                alert(h.firstChild.nodeValue);
                //另外一种方法
                alert(h.lastChild.nodeValue);
                //第三种方法
                var nodes = h.childNodes
                alert(nodes[0].nodeValue);
                //第四种方法
                alert(h.innerText);
    
            //-->
            </script>
         </body>
        </html>
    


    打印ul中的值(教你怎样解决不同IE给你附加的节点而取出你想要的节点内容).html

        <!doctype html>
        <html lang="en">
         <head>
          <title>5打印ul中的值(教你怎样解决不同IE给你附加的节点而取出你想要的节点内容)</title>
         </head>
         <body>
             <ul>
                <li id="bj" value="beijing">
                    北京
                    <h1>海淀</h1>
                    奥运
                </li>
                <li id="sh" value="shanghai">
                    上海
                </li>
                <br/>
                <input type="button" value="li取值" onclick="getLi()"/>
            </ul>
            <script type="text/javascript">
            <!--
                function getLi(){
                    var bjNode = document.getElementById("bj") ;
                //alert(bjNode.nodeName + ":" + bjNode.nodeValue +":" + bjNode.nodeType) ;
                var txts = bjNode.childNodes ;
                for(var i = 0 ;i <txts.length;i++){
                    if(txts[i].nodeType == 3)
                        alert(txts[i].nodeValue) ;
                    else if(txts[i].nodeType == 1)
                       alert(txts[i].firstChild.nodeValue) ;    
                }
    
                }
            //-->
            </script>
         </body>
        </html>
    


    打印select的值.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>打印select的值</title>
         </head>
         <body>
            <select name="edu" id="edu">
                <option value="本科">本科</option>
                <option value="专科">专科</option>
                <option value="高中">高中</option>
                <option value="小学">小学</option>
                <option value="幼儿园">幼儿园</option>
            </select>
         </body>
        </html>
        <script type="text/javascript">
        <!--
            //取出方式1
            var edu = document.getElementById("edu");
            var opt = edu.childNodes ;
            for(var i = 0;i<opt.length;i++){
             //注意:浏览器加入了非常多空行,所以要推断
                if(opt[i].nodeType==1){
                alert(opt[i].firstChild.nodeValue);}
            }
            //取出方式2(推荐)
            var ops = edu.options;
            for(var i = 0;i<ops.length;i++){
                alert(ops[i].innerText);
            }
        //-->
        </script>
    


    3、结点的分类

        整个文档是一个文档节点 
        每个 XML 标签是一个元素节点 
        包括在 XML 元素中的文本是文本节点 
        每个 XML 属性是一个属性节点 
        凝视属于凝视节点 
    

    4、结点的关系

        仅仅有父子和兄弟关系
            parentNode  : 父节点
            childNodes  :全部的子标签
            firstChild  :第一个儿子
            lastChild  :最后一个儿子
            nextSibling :下一个兄弟节点
            previousSibling : 上一个兄弟节点
    

    5、对结点进行CRUD操作(重点)

    5.1、查找结点?

    两种方式: 
        a. 採用节点之间的关系去拿根节点:
            document.documentElement ;
        b. 採用方法去拿
            getElementById() : 依据标签的ID拿到此标签节点
            getElementsByTagName() : 依据标签的名字拿到此标签节点数组
            getElementsByName(): 适用于表单控件。

    依据标签的name属性值拿到控件的数组。

    5.2、删除结点?

    removeChild() : 採用父节点删除子节点
    

    5.3、创建节点:

    document.createElement()  : 创建一个标签节点
    docuemnt.createTextNode("内容") :创建一个文本节点
    节点的setAttribute() :加入属性节点
    

    5.4、加入结点?

    appendChild() : 加入子节点
    

    5.5、改动或替换结点?

    replaceNode(): 替换节点(适用于IE)
    replaceChild() : 替换子节点
    

    替换节点和克隆节点.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>替换节点和克隆节点</title>
         </head>
         <script type="text/javascript">
         <!--
            function changeNode(){
                //拿到bj节点
                var bjNode = document.getElementById("bj") ;
                //拿到game节点  
                var gameNode = document.getElementById("game") ;
    
                //替换
                //第一种方式(不推荐)
                //bjNode.replaceNode(gameNode) ; 
                //另外一种
                //克隆节点
                var kNode = gameNode.cloneNode(true) ;  //有一个參数是boolean类型的,假设是true,表示连子节点一起复制,假设是false,则再复制本节点。不复制内容
                //bjNode.replaceNode(kNode) ;
                //第三种方式(推荐)
                bjNode.parentNode.replaceChild(kNode,bjNode) ;
    
            }
         //-->
         </script>
         <body>
             <ul >
                <li id="bj" onclick="changeNode()">北京</li>
                <li>湖南</li>
                <li>山东</li>
            </ul>
            <ul>
                <li  id="game">打<p>灰机</p></li>
                <li>抓泥鳅</li>
                <li>斗地主</li>
            </ul>
    
         </body>
        </html>
    


    创建节点.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>创建节点</title>
         </head>
            <script type="text/javascript">
            <!--
                function addOptions(){
                    //拿到下拉框对象
                    var sel = document.getElementsByTagName("select")[0] ;
                    //创建一个节点
                    // 创建option第一种方法
                    //var option = document.createElement("option") ;
                    //option.text = "小学" ;
    
                    // 创建option另外一种方法
                    //var option = new Option("小学","小学") ;
                    // 创建option第三种方法
                    /*var option = new Option() ;
                    option.value = "小学" ;
                    option.text = "小学" ;
                    sel.options.add(option) ;*/
    
    
                    //另外一种加入方式
                    var option = new Option("小学","小学") ;
                    //sel.appendChild(option) ;    //IE有问题
    
                    //第三种方式
                    sel.innerHTML = sel.innerHTML + "<option value = '小学'>小学</option>" 
    
    
                }
            //-->
            </script>
         <body>
            <input type="button" value="加入选项" onclick="addOptions()"/>
            <select>
                <option>本科</option>
                <option>专科</option>
                <option>高中</option>
                <option>初中</option>
            </select>
         </body>
        </html>
    


    操作节点的属性.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>操作节点属性</title>
         </head>
            <script type="text/javascript">
            <!--
                /*
                    功能: 按钮仅仅能点击一次
                    操作节点属性:
                        1. setAttribute() :设置某个属性的值
                         2.  getAttribute(): 获得属性的值
                         3.  removeAttribute() : 删除属性
                */
                function fun(){
                    //拿到btn对象
                    var btn = document.getElementById("btn") ;
                    //删除disabled属性
                    //btn.removeAttribute("disabled") ;
    
                    btn.onclick =  function(){
                        fun1(this) ;
                    } ;
    
                }
    
    
                function fun1(btn){
                    //第一种方式
                    //btn.setAttribute("disabled","disabled") ;
    
                    //另外一种方式
                    //btn.disabled = "disabled" ;
                    alert("我仅仅会弹出一次哦") ;
                    btn.removeAttribute("onclick") ;
                }
            //-->
            </script>
         <body>
             <input type="button" value="仅仅能点击一次" id = "btn"  onclick = "fun1(this)" >
             <input type="button" value="恢复" onclick = "fun()">
         </body>
        </html>
    


    加入表格行(练习),导购经常使用.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>加入表格行</title>
         </head>
            <script type="text/javascript">
            <!--
                function addtr(){
                    //拿到单元格的内容
                    var name = document.getElementById("name").value ;
                    var email = document.getElementById("email").value ;
                    var age = document.getElementById("age").value ;
    
                    //创建tr,td,并赋值
                    var nametd = document.createElement("td") ;
                    nametd.innerHTML = name ;
                    var emailtd = document.createElement("td") ;
                    emailtd.innerHTML = email ;
                    var agetd = document.createElement("td") ;
                    agetd.innerHTML = age ;
                    var btntd = document.createElement("td") ;
                    btntd.innerHTML = "<input type = 'button'  value = '删除' onclick = 'delTr(this)'> " ;
    
                    //创建tr并组合
                    var tr = document.createElement("tr") ;
                    tr.appendChild(nametd) ;
                    tr.appendChild(emailtd) ;
                    tr.appendChild(agetd) ;
                    tr.appendChild(btntd) ;
    
                    //将tr加入到table中
                    var table = document.getElementById("table") ;
                    table.firstChild.appendChild(tr) ;
                }
    
                function delTr(btn){
                    //爷爷干掉儿子
                    btn.parentNode.parentNode.parentNode.removeChild(btn.parentNode.parentNode) ;
                }
            //-->
            </script>
         <body>
           <table width = 600 height = 100 align = center>
              <tr>
                <td>姓名:</td>
                <td><input type="text" name="" id = "name"></td>
                <td>邮箱:</td>
                <td><input type="text" name="" id = "email"></td>
                <td>年龄</td>
                <td><input type="text" name="" id = "age"></td>
              </tr>
              <tr>
                <td align = "center" colspan = "6"> <input type="button" value="加入" onclick="addtr()"></td>     
              </tr>
              </table>
              <br>
              <br>
              <br>
              <br>
              <hr>
              <table width = "500" border =1 align = center id = "table">
                  <tr>
                    <td>姓名</td>
                    <td>邮箱</td>
                    <td>年龄</td>
                    <td>操作</td>
                  </tr>
              </table>
    
         </body>
        </html>
    


    全选全不选:选择你的爱好.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>选择你的爱好</title>
         </head>
            <script type="text/javascript">
            <!--
                function checkAll(flag){
                    //拿到全部的选项
                    var hobbys = document.getElementsByName("hobby") ;
                    for(var i = 0;i < hobbys.length ;i ++){
                        hobbys[i].checked = flag ;
                    }
                }
    
                function reverseCheck(){
                    //拿到全部的选项
                    var hobbys = document.getElementsByName("hobby") ;
                    for(var i = 0;i < hobbys.length ;i ++){
                        hobbys[i].checked = !hobbys[i].checked ;
                    }
                }
            //-->
            </script>
         <body>
             <h1>请选择你的爱好:</h1>
          全选/全不选<input type="checkbox" name="hobbys" onclick="checkAll(this.checked)" /><br/>
         <input type="checkbox" name="hobby" value="football" />足球
         <input type="checkbox" name="hobby" value="basketball"/>篮球
         <input type="checkbox" name="hobby" value="swim" />游泳
         <input type="checkbox" name="hobby" value="singing" />唱歌<br/>
    
         <input type="button" value="全选" onclick="checkAll(true)"/>
         <input type="button" value="全不选" onclick="checkAll(false)"/>
         <input type="button" value="反选" onclick="reverseCheck()"/> </body>
         </body>
        </html>
    


    下拉框选项的移动(多项).html

        <!doctype html>
        <html lang="en">
         <head>
          <title>下拉框选项的移动(多项)</title>
         </head>
         <script type="text/javascript">
         <!--
                function removeLeft(){
                    //获取下拉框的全部的选项数组
                    var ops = document.getElementById("left").options ;
                    //获得右边下拉框
                    var rightsel = document.getElementById("right") ;
                    //循环推断每个选项是否选中
                    for(var i =0 ;i<ops.length ;i++){
                        if(ops[i].selected){
                            rightsel.appendChild(ops[i]) ;
                            i-- ;
                        }
                    }
    
                }
    
                function removeLeftAll(){
                    //获取左边下拉框的全部的选项数组
                    var ops = document.getElementById("left").options ;
                    //获得右边下拉框
                    var rightsel = document.getElementById("right") ;
                    //循环加入
                    var length  = ops.length ;
                    for(var i = 0 ;i <length;i++){
                        rightsel.appendChild(ops[0]) ;
                    }
                }
         //-->
         </script>
         <body>
           <table align="center">
                <tr>
                    <td>
                        <select size="10" id="left" multiple>
                            <option>选项1</option>
                            <option>选项2</option>
                            <option>选项3</option>
                            <option>选项4</option>
                            <option>选项5</option>
                            <option>选项6</option>
                            <option>选项7</option>
                            <option>选项8</option>
                        </select>
                    </td>
                    <td>
                        <input type="button" value="--->" onclick="removeLeft()"/><br/>
                        <input type="button" value="===>" onclick="removeLeftAll()"/><br/>
                        <input type="button" value="<---" onclick=""/><br/>
                        <input type="button" value="<===" onclick=""/><br/>
                    </td>
                    <td>
                        <select size="10" id="right">
    
                            <option>选项9</option>
                        </select>
                    </td>
                </tr>
            </table>
         </body>
        </html>
    


    超链.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>Document</title>
         </head>
             <script type="text/javascript">
             <!--
                 function fun(){
                    alert("哈哈。我来了") ;
                    return false ;
                 }
             //-->
             </script>
         <body>
            <a href="http://blog.163.com/faith_yee/blog/demo03-dom节点的属性.html" onclick = "return false ;">demo03-dom节点的属性.html</a><br>
            <a href = "javascript: void(0)">demo03-dom节点的属性.html</a>
         </body>
        </html>
    


    表单数据的推断.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>Document</title>
            <style type="text/css">
                .one{
                    border:2px solid red ;
    
                }
    
                .two{
                    background-image:url("images/error.jpg");
                    background-position:right;
                    background-repeat:no-repeat;
                }
            </style>
         </head>
            <script type="text/javascript">
            <!--
                function checkInfo(form){
                    //推断通行证名称 
                    var username = form.username.value ;
                    if(username == ""){
    
                        form.username.className = "two" ;
    
                        var span = document.getElementById("susername") ;
                        span.className = "one" ;
                        span.innerHTML = "<img src='http://blog.163.com/faith_yee/blog/images/error.jpg'>通行证用户姓名不能为空" ;
                        return false ;
                    }
                    return true ;
                }
            //-->
            </script>
         <body>
            <form method = "post" action = "" onsubmit = "return checkInfo(this)">
                <fieldset>
                    <table>
                    <tr>
                        <td align = "right">通行证名称:</td>
                        <td><input type="text" name="username">@163.com</td>
                        <td><span id = "susername"></span></td>
                    </tr>
                    <tr>
                        <td align = "right">密码:</td>
                        <td><input type="password" name="pass"></td>
                        <td><span id = "spass"></span></td>
                    </tr>
                    <tr>
                        <td align = "right">确认密码:</td>
                        <td><input type="password" name="repass"></td>
                        <td><span id = "srepass"></span></td>
                    </tr>
                    <tr>
                        <td colspan = "3"><input type="submit" value = "提交"></td>
                    </tr>
                    </table>
                </fieldset>
            </form>
         </body>
        </html>
    


    javascript模拟类的实现.html

        <!doctype html>
        <html lang="en">
         <head>
          <title>javascript模拟类的实现</title>
         </head>
            <script type="text/javascript">
            <!--
                /*
                    1.定义类并创建类的实例对象
                    2.定义公有属性和私有属性
                    3.定义公有方法和私有方法
                    4.静态属性和静态方法
                    5.构造函数(无參,有參)
                    6.原型方式声明属性与方法
                    7.直接用Object或函数对象加属性与方法
                */
                //----------------------------------------------------------
                //1.定义类并创建类的实例对象
                /*function Person(){
    
                }
                var p = new Person() ;*/
    
                //------------------------------------------------------------
                //2.定义公有属性和私有属性
                /*
                    定义私有属性:
                         1.在函数里: var name = '张三' ;
                         2.在函数外:  採用对象.属性名
    
                    定义公有属性:
                         1.在函数里:this.name = '张三' ;
                         2.在函数外  类名.prototype.属性名
                */
                /*function Person(){
                    var name = "张三" ;
                    this.age = 20 ;
                }
    
                var p = new Person() ;
                //alert(p.name) ;  //name是私有属性。仅仅能在函数中訪问
                //alert(p.age);
                //p.weight = 100 ;  //定义一个私有属性
                //alert(p.weight) ;
                Person.prototype.height = 180 ;
                alert(p.height) ;
                var p1 = new Person() ;
                //alert(p1.age) ;
                //alert(p1.weight) ;  //訪问不了weight,由于weight是专属于p对象的私有属性
                alert(p1.height) ;*/
    
                //-----------------------------------------------------------------
                //3.定义公有方法和私有方法
                /*
                    定义私有方法:
                         1.在函数里: var say = function() ;
                         2.在函数外: 採用对象.方法名
    
                    定义公有方法:
                         1.在函数里:this.name = function() ;
                         2.在函数外:类名.prototype.方法名
                */
                /*function Person(){
                    var say = function(){
                        alert("我是私有方法") ;
                    }
    
                    this.show = function(){
                        say() ;
                    }
                }
    
                var p = new Person() ;
    
                //p.show() ;   
                p.sing = function(){   //採用匿名函数的方式定义私有方法
                    alert("我想唱忘情水") ;
                }
    
                //p.sing() ;
                Person.prototype.eat = function(a){
                    alert("我想吃" + a) ;
                }
                p.eat("鸡肉") ;
                var p1 = new Person() ;
                //p1.sing() ;  //不能调用,由于sing方法是p对象的专属方法,私有的
                p1.eat("鸭肉") ;*/
    
                //--------------------------------------------------------------
                //4.静态属性和静态方法 : 注意: 不能通过对象来调用
                /*function Person(){}
                Person.name = "张无忌" ;  //定义一个静态属性
                Person.show = function(){ //定义一个静态方法
                    alert("我是静态方法") ;
                } ;  
    
                alert(Person.name) ;   
                Person.show() ;*/
    
                //---------------------------------------------
                //5.构造函数(无參。有參)
                 //注意: 不要起同名的函数
                /*function Person(name){
                    this.name = name ;
                }
                function Person(name,age){
                    alert("我被调用了") ;
                    this.name = name ;
                    this.age = age ;
                }
    
                var p = new Person("张无忌",20) ;
                alert(p.name + ":" + p.age) ;
    
                var p1 = new Person("张三丰") ;
                alert(p1.name) ;*/
    
                //------------------------------------------------
                //5.创建对象的方式
                /*
                    创建对象的三种方式:
                         1. 採用new 函数名()
                         2. new Object() ;
                         3. json
                */
                // var a = new Object() ;
                // alert(typeof(a)) ;
    
                //json格式
                var json = {"a":"中国","b":"美国","c":"日本"} ;
    
                //alert(typeof(json));
                //alert(json["b"]) ;
                //alert(json.b) ;
    
                var json1 = {1:"中国",2:"美国",3:"日本"} ;
                //alert(json1[2]) ; //此种情况下仅仅能採用中括号去拿值
    
                //假设想都拿到
                /*for(var x in json){
                    alert(x + ":" + json[x]) ;
                }*/
    
                //扩展:foreach循环是拿到对象的全部的属性
                /*function fun(p){
                    for(var a in p){
                        alert(a) ;
                    }
                }*/
    
                //---------------------------------------------------
                //给数组加入方法
                //功能:获取数组中的最大值
                /*Array.prototype.getMax= function(arr){
                    var max  = arr[0] ;
                    for(var i = 1 ;i<arr.length ;i++){
                        if(arr[i] > max)
                           max = arr[i] ;           
                    }
                    return max ;
                }
    
                var arr = [2,6,12,67,58] ;
                var max = arr.getMax(arr) ;
                alert(max) ;*/
    
                //改造document.getElementById();
                /*function $(id){
                    if(arguments.length > 1){
                        alert("传递的參数个数不正确") ;
                        return ;
                    }
                    var obj = document.getElementById(id) ;
                    if(obj == null){
                        alert("传递的參数必须是id的值") ;
                        return ;
                    }
                    return  obj ;
                }
    
                function func(){
                    //var p = $("a,","b") ;
                    var p = $("p") ;
                    p.innerHTML = "刘德华" ;
                    p.onclick = function(){
                        alert(this.innerHTML);
                    }
                }*/
    
                //--------------------------------------------
                //继承
                /*function Person(){
                    this.name = "张无忌" ;
                    this.show = function(a){
                        alert(a) ;
                    }
                }
    
                function Student(){ 
                    this.name = "张三丰" ;
                    this.show =function(){
                        alert("我是子类的方法");
                    }
                }
    
                Student.prototype = new Person() ;  //student继承了Person
                var s = new Student() ;
                //alert(s.name) ;
                s.show("aaaa") ;*/
    
                //------------------------------------------
                //with(对象的名字)
                //设定p标签的样式
                function func(){
                    var p = document.getElementById("p") ;
                    //p.style.color = "red" ;
                    //p.style.border="1px solid green" ;
                    //p.style.fontSize = "50px" ;
                    with(p){
                        style.color = "red" ;
                        style.border = "1px solid green" ;
                        style.fontSize="50px" ; 
                    }
                }
            //-->
            </script>
         <body>
            <p id = "p" onclick = "fun(this)" name = "p1">李德华</p><input type="button" value="拿取p标签的内容" onclick="func()">
         </body>
        </html>
    



    资料下载

  • 相关阅读:
    802.11协议网文转载
    三角函数公式大全
    IEEE 802.11ac Standard
    FPGA设计如何进行面积优化
    直流偏差消除
    I/Q不平衡补偿
    WiFi6剩余频偏的影响
    SQL SERVER 调优等待类型
    Nginx
    fatal: HttpRequestException encountered解决方法
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6946262.html
Copyright © 2011-2022 走看看