JavaScript Class 5

学习内容:

BOM-JavaScript是运行在浏览器中的,
所以提供了一系列对象用于和浏览器窗口进行交互,
这些对象主要包括window、document、location、navigator和screen等。
通常称为浏览器对象模型(Browser Object Model)

1.window对象:
window是顶层对象

document、location、navigator、screen、history是其属性

 1 <script>        
 2 //windows是顶层对象,可以省略
 3     function c(){
 4         window.alert("这是alert方法");
 5     }
 6     function con(){  //带返回值的方法,确定返回true 取消返回false
 7         var a = window.confirm("这是confirm方法");
 8         if(a == true){
 9             alert("bye");
10         }else{
11             alert("no");
12         }
13         alert(a);
14     }
15     function pro(){ //带返回值的方法,点取消返回null
16         var b = window.prompt("这是prompt方法");
17         if(b!=null){
18             alert(b);
19         }else{
20             alert("你点了取消");
21         }
22         alert(b);
23     }
24     function move(){
25         window.moveBy(50,50);//窗口移动多少分别定义上下、左右,可多次移动 moveTo移动至 移动一次
26     }
27     function resizeT(){
28         window.resizeTo(600,500);//设置窗口大小至多大
29     }
30     function resizeB(){
31         window.resizeBy(100,100);//设置窗口增大多少
32     }
33 </script>

PS 制作一个钟表

 1 <html>
 2 <head>
 3     <script>
 4         function startTime(){
 5             var d = new Date();
 6             var h = d.getHours();
 7             var m = d.getMinutes();
 8             var s = d.getSeconds();
 9             m = checkTime(m);
10             s = checkTime(s);
11     document.getElementById("clock").innerHTML=h+":"+m+":"+s;
12             t = setTimeout('startTime()',500);
13     //setTimeout本来只能执行一次指定函数,但是写在要执行的函数内,就可以实现重复调用
14         }
    //var t = setInterval("startTime()",500);//setInterval 每隔多长时间执行一次函数
15 function checkTime(i){ 16 if(i<10){ 17 i="0"+i; 18 } 19 return i; 20 } 21 </script> 22 </head> 23 24 <body onLoad="startTime()"> 25 <div id="clock"></div> 26 </body> 27 </html>

 2.history对象:

(a)back();返回前一页,只有浏览过两页以上时才会生效

(b)forward();下一页,当前页面如果是第一个打开的,则无效

(c)go(),前进或后退指定数量的页面,正则进,负则退

<a href="javascript:history.forward()">下一页</a>
<a href="javascript:history.back()">上一页</a>
<a href="javascript:history.go(5)">前进5页</a>

3.DOM

DOM:
DOM是文档对象模型(Document Object Model)的简称。当网页加载时,可以将结构化文档在内存中转换成对象的树。
通俗来说,就是把每一个html标签看做一个个的对象,利用JS来进行各种操作。

DOM模型中的节点——文档可以说是由节点构成的集合。在DOM模型中有以下3种节点:
1.元素节点:各种标签就是这些元素节点的名称,例如p标签等。
2.文本节点:文本节点总是被包含在元素节点的内部,例如a标签内的文字。
3.属性节点:一般用来修饰元素节点就称之为属性节点,例如a标签内的href属性。

常用操作:

 1 <body>
 2 <div>
 3     <ul>
 4         <li>123</li>
 5         <li id="l1">456</li>
 6         <li>789</li>
 7     </ul>
 8 </div>
 9     <script>
10     //document.getElementById  通过id值来访问元素
11     //document.getElementsByTagName 通过标签名来访问元素
12     //var x = document.getElementsByTagName("li")[1].innerHTML;//方括号内为元素顺序
13     //alert(x);
14     //用过标签名来访问元素
15     //document.getElementById().parentNode 返回当前节点的父节点
16     //previousSibling 返回当前节点的前一个兄弟节点 nextSibling 返回当前节点的后一个兄弟节点
17     //document.getElementById().value 返回元素的属性值
18     //document.getElementById().innerHTML 返回元素的文本值
19     </script>
20 </body>

 4.访问元素

 1 <body>
 2     <div id="d1">
 3     我的div块
 4     </div>
 5     <textarea cols="20" rows="10" id="d2">
 6         好好学习,天天向上
 7     </textarea>
 8     <input type="text" value="按我呀" id="d3">
 9     <input type="button" value="访问三个元素的内容" onClick="t()">
10     <script>
11     function t(){
12         x = document.getElementById("d1").innerHTML;
13         
14         y = document.getElementById("d2").value;
15     
16         z = document.getElementById("d3").value;
17         alert(x+"
"+y+"
"+z);
18     }
19     </script>
20 </body>

5.访问节点

<body>
    <ul id="u">
    <li>张三</li>
    <li>李四</li>
    <li>王五</li>
    <li style="color: red;" id="f">赵六</li>
    <li>小红</li>
    <li>小明</li>
    </ul>
    <input type="button" value="父节点" onClick="f()">
    <input type="button" value="第一个子节点" onClick="fc()">
    <input type="button" value="上一个节点" onClick="ps()">
    <input type="button" value="下一个节点" onClick="ns()">
    <input type="button" value="最后一个子节点" onClick="lc()">
    <input type="button" value="得到所有li的元素个数" onClick="tn()">
    <script>
        function f(){
            var f =     document.getElementById("f").parentNode.innerHTML;
        alert(f);
        }
        function fc(){
        var fc = document.getElementById("f").parentNode.firstChild.nextSibling.innerHTML;//ul为块标签,之间的换行也是子节点,
     //要找到真正的文字要下一个节点才是
alert(fc); } function ps(){ var ps = document.getElementById("f").previousSibling.previousSibling.innerHTML; alert(ps); } function ns(){ var ns = document.getElementById("f").nextSibling.nextSibling.innerHTML; alert(ns); } function lc(){ var lc = document.getElementById("f").parentNode.lastChild.previousSibling.innerHTML;//lastChild是换行 alert(lc); } function tn(){ var tn = document.getElementById("u").getElementsByTagName("li").length; alert(tn); var arr = document.getElementById("u").getElementsByTagName("li")//这是一个数组,存放了所有li for(i=0;i<arr.length;i++){ document.write(arr[i].innerHTML+" "); } } </script> </body>

 2018/02/28

原文地址:https://www.cnblogs.com/whwjava/p/8483056.html