• 13前端javascript——DOM元素获取和操作


    Javascript 的DOM

    • DOM:document object model

    • dom:一个页面就是一个文档document

    • 节点:所有的内容都是节点node

      • 标签节点

      • 属性节点

      • 文本节点

      • 注释节点

    • 元素:所有的标签都是元素element

    getElementById('id')通过ID获取元素

    • 返回时一个元素对象

    getElementsByTagName('标签名')通过标签名获取元素

    • 返回的是匹配的多个对象的伪数组:不能用push等方法

    getElementsByClassName(‘类名’)通过类获取元素

    querySeletor('选择器')返回指定选择器的第一个元素对象

    • ‘#id’

    • ‘.类名’

    • ‘标签名’

    querySeletorAll('选择器')返回指定选择器的所有元素对象的集合

    • 返回的是一个伪数组

    • ‘#id’

    • ‘.类名’

    • ‘标签名’

    document.body获取body元素对象

    document.documentElement返回html元素对象

    事件

    • 执行事件的步骤

      • 获取事件源

      • 绑定注册事件

      • 添加事件处理程序

    操作元素

    innerText()修改元素内容,

    • 从起始位置到终止位置

    • 去除html标签、空格、换行

    • 不识别html标签

    innerHTML()修改元素内容

    • 从起始位置到终止位置

    • 保留空格、换行、html标签

    • 识别html标签

    获取和修改元素内部属性

    • 修改img元素属性:img.src、img.title、img.href

    • 修改form元素属性:form.type、form.value、form.checked、form.selected、form.disabled等

    • 修改样式属性element.style行内样式操作

      • element.style.属性名 = ‘ ’

    操作自定义属性

    • 获取元素属性

      • element.属性只能获取内部属性

      • element.getAttribute(‘属性名’)自定义属性

      • element.dataset.'属性名' 或者element.dataset['属性名']

        H5新增:dataset是一个集合,里面存放的所有以data开头的自定义属性

    • 修改属性值

      • elment.属性 = ‘值’

      • element.setAttribute('属性名','值')

    • 移除属性

      • element.removeAttribute('属性名')

    • h5要求自定义属性要以-data开头

    操作节点

    • 节点一般包括:

      • 节点类型(元素节点1、属性节点2、文本节点3)

      • 节点名称

      • 节点值

    • 父节点:node.parentNode 返回node节点的最近父节点,如果没有返回null

    • parentNode.childNodes 返回包含指定节点的子节点集合(啥类型的节点都有)

    • parentNode.children 返回所有子元素节点,无返回null

    • parentNode.firstChild 返回第一个子节点,无返回null

    • parentNode.lastChild 返回最后一个子节点,无返回null

    • parentNode.firstElementChild 返回第一个子元素节点,无返回null

    • parentNode.lastElementChild 返回最后一个子元素节点,无返回null

    • node.nextSibling 返回下一个兄弟节点

    • node.previousSibling 返回上一个兄弟节点

    • node.nextElementSibling 返回下一个兄弟元素节点ie9

    • node.previousElementSibling 返回上一个兄弟元素节点ie9

    • document.createElement('tagname') 创建一个节点

    • node.appendChild(child) 将节点添加到父节点的列表末尾

    • node.insertBefore(child,指定元素) 在父元素指定元素前插入节点 记住:要先创建节点,再追加节点

    • node.removeChild(child) 删除节点

    • node.cloneNode(xxx) 克隆之后要添加节点 如果xxx为空false,则是浅拷贝,只拷贝标签,不拷贝内容 如果xxx为true,则是深拷贝,拷贝标签和内容

  • 相关阅读:
    Client-Side Template Injection with AngularJS
    502 BAD GATEWAY-k8s的cgroup限制了apache的可用内存
    alertmanager的web页面显示UTC时间的问题
    结构化数据
    天马行空 + 行业趋势
    elasticsearch备份脚本
    mongodb的安装部署-备份
    redis安装-备份-恢复 -- redislive -- web管理工具
    elasticsearch 的post put 方式的对比 setting mapping设置
    用elasticsearchdump备份恢复数据
  • 原文地址:https://www.cnblogs.com/muzihuan/p/13296048.html
Copyright © 2020-2023  润新知