0006 BOM和DOM的知识点(javascript02)


001 BOM概念

  Browser Object Model 浏览器对象模型

002 BOM组成

        Window:窗口对象
        Navigator:浏览器对象【用不到】
        Screen:显示器屏幕对象【用不到】
        History:历史记录对象
        Location:地址栏对象

003 Window对象

        1) 创建
        2) 方法
            1. 与弹出框有关的方法:
                alert("消息")     显示带有一段消息和一个确认按钮的警告框
                confirm("消息")    显示带有一段消息以及确认按钮和取消按钮的对话框
                                如果用户点击确定按钮,则方法返回true
                                如果用户点击取消按钮,则方法返回false
                prompt("消息")    显示可提示用户输入的对话框【不常用】
                            返回值:获取用户输入的值

            2. 与打开关闭有关的方法
                open()         打开一个新的浏览器窗口
                        返回一个新的window对象
                close()        关闭浏览器窗口
                        谁调用我,我关闭谁
            3. 与定时器有关的方法
                setTimeout(对象,毫秒值)    在指定的毫秒数之后调用函数或计算表达式(一次)
                    参数:
                        1. js代码或者方法对象
                        2. 毫秒值
                    返回值: 唯一标识,用于取消定时器

                clearTimeout()    取消由setTimeout()方法设置的timeout.

                setInterval()    按照指定的周期(以毫秒计)来调用函数或计算表达式
                    参数:
                        1. js代码或者方法对象
                        2. 毫秒值
                    返回值: 唯一标识,用于取消定时器
                clearInterval()    取消由setInterval() 设置的timeout

                例如:
                //一次性定时器
                var id= setTimeout(fun,2000);
                function fun(){
                    alert("boom~~");
                }
                //取消定时器
                clearTimeout(id);

                //循环定时器
                setInterval(fun,3000);

        3) 属性
            1. 获取其他BOM对象
                history
                location
                Screen
                Navigator
                例如:
                var history = window.history;
                var h = history;
            2. 获取DOM对象
                document
                例如:
                var openBtn = window.document.getElementById("openBtn");

        4) 特点
            Window对象不需要创建,可以直接使用window: window.方法名();
            window应用可省略. 直接写成方法名();
            例如:
                alert("hello a");
                window.alert("hello window");

004 案例-轮播图

	分析:
	1. 在页面上使用img标签展示图片
	2. 定义一个方法,修改图片对象的src属性
	3. 定义一个定时器,每隔3秒调用一次方法
    代码:
    
	
    
	

 005 Location:地址栏对象

        1) 创建(获取)
            1. window.location
            2. location
        2) 方法
            reload()    重新加载当前文件,刷新
        3) 属性
            href        设置或返回完整的URL
        例如:

        
        
        
        
        

DOM

006 DOM概念

  Document Object Model 文档对象模型

  将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD(增删改查)的动态操作

6.1 W3C DOM标准被分为3个不同的部分

        核心 DOM: 针对任何结构化文档的标准模型
            Document :文档对象
            Element: 元素对象
            Attribute: 属性对象
            Text: 文本对象
            Comment: 注释对象

            Node: 节点对象,其它5个对象的父对象;
        XML DOM: 针对XML文档的标准模型
        HTML DOM: 针对HTML文档的标准模型

6.2 核心 DOM

    Document :文档对象
    Element: 元素对象
    Node: 节点对象,其它5个对象的父对象;

6.2.1  Document :文档对象

    1. 创建(获取): 在html DOM模型中可以使用window对象来获取
        1. window.dacument
        2. document
    2. 方法
        1. 获取Element对象
            1)getElementById()            根据id属性值获取元素对象。id属性值一般唯一
            2)getElementsByTagName()    根据元素名称获取对象们,返回值是一个数组
            3) getElementsByClassName()    根据class属性值获取元素对象们,返回值是一个数组
            4)getElementsByName()        根据name属性值获取元素对象们,返回值是一个数组

        2. 创建其它DOM对象
            createAttribute(name)
            createComment()
            createElement()
            createTextNode()           
    3. 属性

6.2.2 Element:元素对象

    1. 获取/创建:通过document来获取和创建
    2. 方法:
        1. removeAttribute():删除属性
        2. setAttribute():设置属性

6.2.3  Node:节点对象,其他5个的父对象

    * 特点:所有dom对象都可以被认为是一个节点
    * 方法:
    * CRUD dom树:
        * appendChild():向节点的子节点列表的结尾添加新的子节点。
        * removeChild()    :删除(并返回)当前节点的指定子节点。
        * replaceChild():用新节点替换一个子节点。
    * 属性:
        * parentNode 返回节点的父节点。

    6.2.4 案例:


  
div2
div1   
  删除子节点   添加子节点   

6.2.5 案例:动态表格的添加和删除


    
    动态表格
    


学生信息表
编号 姓名 性别 操作
1 令狐冲 删除
2 任我行 删除
3 岳不群 ? 删除

 6.3 HTML DOM

    1. 标签体的设置和获取:InnerHTML
    2. 使用html元素对象的属性[查看【api文档]
    3. 控制样式
        1) 使用元素的style属性来设置
            //修改样式方式1
            div1.style.border = "1px  solid red";
            //font-size -->fontSize
            div1.style.fontSize ="20px";
        2)提前定义好类选择器的样式,通过元素className属性来设置其class属性值
        例如:

	1. 标签体的设置和获取:InnerHTML
	2. 使用html元素对象的属性[查看【api文档]
	3. 控制样式
		1) 使用元素的style属性来设置
			//修改样式方式1
			div1.style.border = "1px  solid red";
			//font-size -->fontSize
			div1.style.fontSize ="20px";
		2)提前定义好类选择器的样式,通过元素className属性来设置其class属性值
		例如:

 案例01:替换文本输入框或追加文本输入框

	
		
div

 案例02 :修改样式(控制样式)

	
	
div

 007 事件监听机制

  7.1 概念:

  某些组件被执行了某些操作后,触发某些代码的执行。    
        * 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
        * 事件源:组件。如: 按钮 文本输入框...
        * 监听器:代码。
        * 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。

  7.2 常见事件演示:

  1. 点击事件:
            1. onclick:单击事件
            2. ondblclick:双击事件
        2. 焦点事件
            1. onblur:失去焦点(一般用于表单校验)
            2. onfocus:元素获得焦点。

        3. 加载事件:
            1. onload:一张页面或一幅图像完成加载。

        4. 鼠标事件:
            1. onmousedown    鼠标按钮被按下。
                    定义方法时,定义一个形参,接受event对象
                    event对象的button属性可以获取鼠标按钮被点击了
            2. onmouseup    鼠标按键被松开。
            3. onmousemove    鼠标被移动。
            4. onmouseover    鼠标移到某元素之上。
            5. onmouseout    鼠标从某元素移开。
            
        5. 键盘事件:
            1. onkeydown    某个键盘按键被按下。    
            2. onkeyup        某个键盘按键被松开。
            3. onkeypress    某个键盘按键被按下并松开。

        6. 选择和改变
            1. onchange    域的内容被改变。(三级联动)
            2. onselect    文本被选中。

        7. 表单事件:
            1. onsubmit    确认按钮被点击。
                    可以阻止表单的提交
                        方法返回false则表单被阻止提交
            2. onreset    重置按钮被点击。

  7.3 案例:演示

	//2.加载完成事件  onload
        window.onload = function(){
            /*//1.失去焦点事件
            document.getElementById("username").onblur = function(){
                alert("失去焦点了...");
            }*/
            /*//3.绑定鼠标移动到元素之上事件
            document.getElementById("username").onmouseover = function(){
                alert("鼠标来了....");
            }*/
           /* //3.绑定鼠标点击事件
            document.getElementById("username").onmousedown = function(event){
               // alert("鼠标点击了....");
                alert(event.button);
            }*/
          /*  document.getElementById("username").onkeydown = function(event){
                // alert("鼠标点击了....");
               // alert(event.button);
                if(event.keyCode == 13){
                    alert("提交表单");
                }
            }*/
           /* document.getElementById("username").onchange = function(event){

                alert("改变了...")
            }
            document.getElementById("city").onchange = function(event){
                alert("改变了...")
            }*/
            /*document.getElementById("form").onsubmit = function(){
                //校验用户名格式是否正确
                var flag = false;
                return flag;
            }*/
        }
        function checkForm(){
            return true;
        }
    
    
		

 008 案例-表格全选




    
    表格全选
    
  


学生信息表
编号 姓名 性别 操作
1 令狐冲 删除
2 任我行 删除
3 岳不群 ? 删除

 009 案例06 -表单验证




    
    注册页面




新用户注册

USER REGISTER

已有账号?立即登录