黑马程序员技术交流社区

标题: [前端]DOM简介 [打印本页]

作者: 麻同学    时间: 2019-4-25 18:43
标题: [前端]DOM简介
什么是DOM?
    文档对象模型(document object model)
    可以像操作对象那样, 去操作咱们的页面(结构 \ 样式 \ 内容) , 是一个接口

DOM树(文档树)
    把整个页面当做是一个文档对象, 页面中的标签 \ 属性 \ 注释\ 文本内容 , 这些都是这个文档的节点,节点对象
    想改变页面 就是去操作document文档

操作元素
    1.获取元素对象

        1.1 根据ID来获取元素对象, document.getElementById()
            a. 获取到, 返回元素对象
            b. 获取不到, 返回 null

        1.2 根据标签名获取对象
            a. 从文档中获取, document.getElementsByTagName()
            b. 从指定标签中获取 父元素对象.getElementsByTagName()
            c. 返回值   获取时以伪数组方式的存储数据,
                            获取不到时返回空的伪数组

        1.3 H5新增的方式[有兼容性问题]
            a. 根据class来获取, getElementsByClassName()
            b. 根据选择器来获取, querySelector(), 返回第一个对象
            c. 根据选择器来获取, querySelectorAll(), 返回所有对象
            d. 返回值   获取时以伪数组方式的存储数据

        1.4 特殊元素对象的获取
            a. 获取 body 元素, document.body
            b. 获取 html 元素, document.documentElement

    2.操作元素内容

        2.1 获取内容
            a. 元素对象.innerText [过滤html标签 \ 空格 \ 换行]
            b. 元素对象.innerHTML[原封不动的获取标签中间的内容]

        2.2修改内容
            a. 元素对象.innerText = 新内容; [不识别html标签]
            b. 元素对象.innerHTML= 新内容;[识别html标签]
   
    3.操作元素属性
        a. 获取属性
            (1) 元素对象.属性名 (只能获取标签自带的属性)
            (2)
        b. 修改属性
            元素对象.属性名 = 新值;
        c. 表单元素的状态属性
            例如 :
                disabled \ checked , js中用 true 和 false 来设置其状态.

    4.操作元素的样式
         a. 元素对象.style.样式名 = 样式值;[样式少时用]
        b. 通过修改class属性来设置  元素对象.className = 类名;[样式多时用]
        



    生活中的事件 :
        a. 时间
        b. 人物
        c. 事

    网页中的事件 :
        a. 标签(事件源对象)
        b.用户对这个标签做了什么操作(事件类型)
        c. 出现了什么特效(事件处理程序)

页面中的事件
    1.当用户做了某个操作, 出现了相应的特效

    2.事件三要素
        a. 事件源对象(标签对象)
        b. 事件类型(用户的操作)
        c. 事件处理程序(函数, 特效代码)

    3.常用的事件类型
        a. 单机事件, onclick
        b. 获得焦点事件, onfocus
        c. 失去焦点事件, onblur
        d. 鼠标移入事件, onmouseover
        e. 鼠标移出事件, onmouseout

    4.注册事件
        元素对象.事件类型 = function() {    // 特效代码;};

    5.事件处理函数中的this
        a. 事件处理函数中有一个关键字 this
        b. this 代表事件源对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2