1.DOM编程初级(原理)0805

 

DOM编程

1.instance of 用来判断引用类型,如果遇到值类型,则返回false;typeof-用来判断值类型的对象,如果遇到引用类型,则返回Object

2.块级元素:纵向占一行

3.浏览器加载外部js文件时,会暂时后面代码的运行

优化的小技巧:

把外部js放后面,等整个窗体加载完成后,再调用外部js;

减少外部请求(把图片整合成一个);

4.关于浏览器编程:浏览器在执行代码;html(毛胚房)、css(装修)、js(动作行为功能)

5.Js也有值类型和应用类型之分

值类型5个:Number、String、Boolean、Undefined  ,Null,引用类型:Object

6.        <a href="javascript:changeTab(this);">百度</a>

就相当于再html里执行这段代码:<script type="text/javascript">

                                     changeTab(this);

                                   </script>

7.网站中实现切换选项卡的代码:

    <script type="text/javascript">

         window.onload = function () {

            var ggA = document.getElementById("tabs").getElementsByTagName("a")[0];

            changeTab(ggA);

        };

        function changeTab(obj) {

            //获得 选项卡 a标签对象们

            var tabsDiv = document.getElementById("tabs");

            var links = tabsDiv.getElementsByTagName("a"); //此时返回的是一个 类似于 数组的东东:NodeList,也提供了一个类似于数组的属性length

            //获得 显示或隐藏的搜索div们

            var searchDiv = document.getElementById("search");

            var searchDivs = searchDiv.getElementsByTagName("div");

            for (i = 0; i < links.length; i++) {

                var linkDiv = document.getElementById("links" + i);

                if (links[i] == obj) {//如果当前循环到的按钮a,是当前被点击的话

                    if (searchDivs[i]) searchDivs[i].style.display = "block";//如果div们中存在此对应下标的 div对象,则修改 display 为显示

                    //links[i].style.backgroundPosition = "0px -32px"; //直接操作了行内样式表,其优先级 比style标签中的 内嵌样式表 优先级高,所以内嵌样式表中 一样的属性,会失效。(就近原则)

                    links[i].className = "selectedTab"; //设置 元素的 class 属性(类选择器)

                    if (linkDiv && linkDiv != undefined) linkDiv.style.display = "block";

                } else {

                    if (searchDivs[i]) searchDivs[i].style.display = "none"; //如果div们中存在此对应下标的 div对象,则修改 display 为隐藏

                    //links[i].style.backgroundPosition = "0px 0px";

                    links[i].className = "";

                    if (linkDiv && linkDiv != undefined) linkDiv.style.display = "none";

                }

            }

        }

    </script>

    <!--03tabs begin-->

    <div id="tabs">

       <a class="selectedTab" href="javascript:void(0);" οnclick="changeTab(this);return false;">谷歌</a>

       <a style="background-position:0px 0px;" href="javascript:void(0);" οnclick="changeTab(this);return false;">百度</a>

       <a href="javascript:void(0);" οnclick="changeTab(this);return false;">学习</a>

       <a href="javascript:void(0);" οnclick="changeTab(this);return false;">视频</a>

       <a href="javascript:void(0);" οnclick="changeTab(this);return false;">百科</a>

    </div>

    <!--03tabs end-->

    <!--04search begin-->

    <div id="search">

       <div id="search_gg" class="searchInner">

            <br />谷歌搜索:<input name="txtGG" size="56" type="text" /><input type="submit" value="搜索" />

       </div>

       <div id="search_bd" class="searchInner">

            <br />百度一下:<input name="txtBD" size="56" type="text" /><input type="submit" value="搜索" />

       </div>

    </div>

    <!--04search end-->

    <!--05links begin-->

    <div id="links0" class="links">

       名站导航:

       <ul>

            <li><a href="http://www.itcast.cn">传智播客</a></li>

            <li><a href="http://www.itcast.cn">传智播客</a></li>

            <li><a href="http://www.itcast.cn">传智播客</a></li>

            <li><a href="http://www.itcast.cn">传智播客</a></li>

       </ul>

    </div>

    <div id="links1" class="links">

       名站导航2:

     <ul>

            <li><a href="http://www.itcast.cn">传智播客2</a></li>

            <li><a href="http://www.itcast.cn">传智播客2</a></li>

            <li><a href="http://www.itcast.cn">传智播客2</a></li>

       </ul> </div> <!--05links end-->

效果图:

切换选项卡:

 

8. Javascript最终是要操作html页面,让html变成dhtml,而操作html页面就要用到dom。Dom就是把html页面模拟成一个对象,就像XDocument一样,把xml模拟成了一个对象,提供了操作各个节点的方法,直接调用就可以了。

如果javascript只是执行一些计算、循环等操作,而不能操作html也就失去了它存在的意义。

 

9. 事件

事件:<body οnlοad="" οnmοusedοwn=“alert(‘哈哈’)”>当点击鼠标的时候执行onmousedown中的代码。有的事件响应的代码太多,就放到单独的函数中:

    <script type="text/javascript">

        function bodymousedown() {

            alert("网页被点坏了,赔吧!");

            alert("逗你玩的!");

        }

    </script>

<body οnmοusedοwn="bodymousedown()">

bodymousedow后的括号不能丢(不能写成: οnmοusedοwn="bodymousedown" ),因为表示onmousedown事件发生时调用bodymousedown函数,而不是onmousedown事件的响应函数是bodymousedown。

可以在代码中动态设置事件响应函数,就像.Net中btn.Click+=一样

        function f1() {

            alert("1");

        }

        function f2(){

            alert("2");

        }

<input type="button" οnclick="document.οndblclick=f1" value="关联事件1" />//注意f1不要加括号。如果加上括号就变成了执行f1函数,并且将函数的返回值复制给document.ondblclick,这里表示当document.ondblclick时发生f1

<input type="button" οnclick="document.οndblclick=f2" value="关联事件2" />

<script type="text/javascript">

        window.onload = function(){

            //document.getElementById("btnTest").onclick = showName();//若是加上(),就成了调用函数,然后把返回值赋给onclick属性,

            document.getElementById("btnTest").onclick = showName;//此时是将showName方法的指针赋给了onclick属性

        }

        function showName(){

            var input = document.getElementById("txtName");

            var str = input.value;

            alert(str);

        }

    </script>

</head>

<body>

    <input type = "button" id = "btnTest" />

    <input type="text" id="txtName" />

</body>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值