DOM

DOM操作

DOM操作

  • DOM,Document Object Model,文档对象模型

  • 将HTML中的元素(标签)当做JS中的对象进行操作,就叫DOM操作

  • window表示浏览器中打开的窗口,document表示显示在窗口中的文档

  • DOM操作核心:找到对象、添加事件、修改样式、...

  • 在JS中样式的书写采用的时小驼峰的命名规范,如:backgroundColor

  • 控制台输出:console.log()

查找元素

  • document.getElementById:根据ID属性,查找元素(一个)

  • document.getElementsByClassName:根据class属性,查找元素(多个)

  • document.getElementsByTagName:根据标签名,查找元素(多个)

  • document.getElementsByName:根据name属性,查找元素(多个)

JS事件

  • onclick:单击

  • onbdlclick:双击

  • onfocus:获取焦点

  • onblur:失去焦点

  • onmouseover:鼠标移入

  • onmouseout:鼠标移出

定时器

  • 说明:所谓定时器,就是在指定的时间做指定的事情

  • 分类:

    • 一次性定时器:设置一个时间,时间一到,执行指定的操作,之后定时器销毁。

      • 设置:var timer = setTimeout(函数, 时间) //时间的单位是毫秒

      • 清除:clearTimeout(timer)

    • 周期性定时器:设置一个间隔,时间一到,执行指定的操作,然后重新计时。

      • 设置:var timer = setInterval(函数, 时间)

      • 清除:clearInterval(timer)

  • 说明:

    • 定时器任务正在执行时,即使清除定时器,操作也不会立即停止,会等当次操作结束后停止。

window

  • 事件:

    • onload:当页面加载完毕,包括非文本资源,若JS放在开头,一定要保证网页加载完成再进行操作

    • onresize:当页面的尺寸发生改变时触发

  • 属性:window的属性(即窗口的属性)

    • innerWidth:宽度

    • innerHeight:高度

    • document:文档对象

      • document.write:向文档中写内容

      • document.title:网页的标题

查找元素

  • 上一个同胞:var pre = oushu.previousElementSibling || oushu.previousSibling(高级浏览器和低级浏览器的不同,就是获得相同属性时的方法的不同)

  • 下一个同胞:var next = oushu.nextElementSibling || oushu.nextSibling

  • 父级元素:var parent = oushu.parentNode

  • 第一个子元素:var first = parent.firstElementChild || firstChild

  • 最后一个子元素:var last = parent.lastElementChild || lastChild

  • 连续查找:var uncle = oushu.parentNode.nextElementSibling

创建与删除

  • 创建元素:var div = document.createElement('div')

  • 添加元素:var div = document.createElement('div')

  • 删除元素:grand.removeChild(parent)

window对象

  • 事件

    • onload:页面加载完成

    • onresize:窗口尺寸更改

    • onscroll:当窗口发生滚动时

  • 属性

    • innerWidth:宽度

    • innerHeight:高度

    • document

      • documentElement:相当于非H5的body元素

        • clientWidth:宽度

        • clientHeight:高度

        • scrollTop:垂直滚动距离

        • scrollLeft:水平滚动距离

      • body:非H5标准下使用

事件冒泡

  • 说明:上层元素和下层元素同时支持一个事件,当上层元素事件触发,下层也触发,这种情况叫事件冒泡。

  • 取消事件冒泡:var ev = event || e; ev.cancelBubble = true

事件绑定

  • 说明:同一个事件触发时,调用多个处理函数,直接设置时后面会覆盖前面的,可以通过事件绑定加以解决。

  • 示例:

    // 兼容绑定事件
    function addBind(obj, ev, func)
    {
        if (obj.addEventListener) {
            // 高级浏览器
            obj.addEventListener(ev, func, false)
        } else {
            // 低级浏览器
            obj.attachEvent('on'+ev, func)
        }
    }
    // 兼容取消绑定事件
    function delBind(obj, ev, func)
    {
        if (obj.removeEventListener) {
            // 高级浏览器
            obj.removeEventListener(ev, func, false)
        } else {
            // 低级浏览器
            obj.detachEvent('on'+ev, func)
        }
    }

事件源元素

  • 说明:根据事件获取事件发生的元素,也就是改时间是发生在哪个元素上的

  • 使用:var ev = e || event; var obj = ev.srcElement

点击的位置

  • 说明:就是点击事件触发时,鼠标在窗口的偏移

  • 使用:var ev = e||event; console.log(ev.clientX + 'x' + ev.clientY)

鼠标事件

  • onmousedown:鼠标按下

  • onmousemove:鼠标移动

  • onmouseup:鼠标抬起

获取元素属性(不带单位)

  • obj.offsetWidth:元素宽度(这种书写方式可以很方便的额获取元素的宽度)

  • obj.offsetHeight:元素高度

  • obj.offsetLeft:水平偏移

  • obj.offsetTop:垂直偏移

键盘事件

  • onkeydown:按键按下事件

    • 按键的ASCII:ev.keyCode

    • 是否按下了alt、shift、ctrl按钮

    if (ev.altKey == true) {
        console.log('按下了alt键')
    } else if (ev.ctrlKey == true) {
        console.log('按下了ctrl键')
    } else if (ev.shiftKey == true) {
        console.log('按下了shift键')
    }

禁用右键

  • 示例

    document.oncontextmenu = function () {
        // 返回false即可禁止右键显示菜单
        return false
    }

禁止跳转

  • 说明:a标签的onclick事件只要返回false即可禁止跳转,也可以通过事件函数返回false

  • 示例:

    <body>
        <a href="http://www.baidu.com" οnclick="return tiao();">百度一下</a>
    </body>
    <script>
        function tiao()
        {
            // 返回false即可禁止跳转
            return false;
        }
    </script>

各种弹出框

  • alert:警告框

  • confirm:确认框

  • prompt:输入框

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值