• DOM


    DOM

    DOM是”Document Object Model”的首字母缩写,即文档对象模型。用来描绘一个层次化的节点树,允许开发人员获取、添加、移除和修改页面的某一部分元素。

    节点:元素节点element,属性节点attribute,文本节点text

    获取DOM元素

    document:文档的意思,代表浏览器内部的最大的区域。代表整个的html文件。

    获取document对象:document

    获取html元素对象:document.documentElement

    获取body元素对象:document.body

    获取head,title:document.head / document.title

    getElementById(): 获取特定 ID 元素的节点--最优

    getElementsByTagName():通过标签名获取元素,获取相同元素的节点列表,返回类数组,使用[下标]来获取(没有下标就是集合)

    getElementsByClassName(): 获取相同类名的节点列表(IE8及以下不支持),返回类数组

    querySelector():获取一个, 通过选择器获取元素,如果获取多个只返回第一个。

    querySelectorAll():获取多个, 通过选择器获取元素,可同时获取多个元素,类数组。

    获取DOM属性

    三个方法操作默认属性以及自定义的属性。

    自定义属性:自己定义的用于传输数据的属性。

    getAttribute()获取特定元素节点属性的值,某些低版本浏览器不支持

    setAttribute()设置特定元素节点属性的值,某些低版本浏览器不支持

    removeAttribute()移除特定元素节点属性,某些低版本浏览器不支持

    innerHTML:读写元素节点里的内容,从节点的起始位置到终止位置的全部内容,包括内部的元素。

    outerHTML:读写元素节点里的内容,除了包含innerHTML的全部内容外, 还包含元素节点本身。

    innerText:读写某个元素节点的文本内容

    DOM节点

    DOM 就是我们 html 结构中一个一个的节点构成的

    不光我们的标签是一个节点,我们写的文本内容也是一个节点,注释,包括空格都是节点

    DOM 的节点我们一般分为常用的三大类 元素节点 / 文本节点 / 属性节点

    比如我们在获取元素的时候,通过各种方法获取到的我们叫做元素节点(标签节点)

    比如我们标签里面写的文字,那么就是文本节点

    比如写在每一个标签上的属性,就是属性节点

    获取DOM节点

    document.querySelector()/document.querySelectorAll():获取标签节点

    childNodes:获取某一个节点下所有的子一级节点,包含空白节点(文本节点),类数组。

    children :获取某一节点下所有的子一级 元素节点,不包含空白节点,类数组。

    获取子节点

    firstChild:获取某一节点下子一级的第一个节点,包含空白节点

    firstElementChild:获取某一节点下子一级 第一个元素节点,不包含空白节点

    lastChild:获取某一节点下子一级的 最后一个节点

    lastElementChild:获取某一节点下子一级 最后一个元素节点

    nextSibling:获取某一个节点的下一个兄弟节点, 包含空白节点

    nextElementSibling:获取某一个节点的 下一个元素节点, 不包含空白节点

    parentNode:获取某一个节点的 父节点

    getAttributes:获取某一个元素节点的所有属性节点

    节点属性

    节点:元素节点,属性节点,文本节点...

    每一个节点又包含三个属性。

    nodeType:获取节点的节点类型,用数字表示 1元素 2属性 3文本

    nodeName:获取节点的节点名称

    nodeValue: 获取节点的值

    节点操作

    查找元素

    document.querySelector()

    document.querySelectorAll()

    创建元素-createElement('创建的标签名')

    追加元素-appenChild()

    格式: 父元素.appendChild(创建的元素)将创建的元素追加到父元素内部的最下面。

    DOM.insertBefore(新的节点, 存在的节点) 在box内,把新的节点节点插入到存在的节点的前面

    DOM.removeChild(node) 删除box内部的子节点

    DOM.cloneNode() 克隆obj节点,可以传一个布尔值为参数,如果参数为true,连同obj子元素一起克隆。

    获取元素的非行间样式

    getComputedStyle(标准浏览器) || currentStyle(IE 浏览器)

    这两个方法的作用是一样的,只不过一个在 非 IE 浏览器(标准浏览器),一个在 IE 浏览器

    window.getComputedStyle(oBox)['width']||Obj.currentStyle.width

    设置css属性和值

    逐个添加-注意单位

    Obj.style.width = '200px'

    整体添加-用css文本的形式

    Obj.style.cssText = '正常的css代码';

    所有设置的css属性都将添加到元素(标签)的行间样式,优先级是比选择器要高。

    利用js提供的属性获取常见css值

    offsetLeft 和 offsetTop 值是没有单位。

    获取的是元素左边的偏移量和上边的偏移量(盒子相对于页面的距离)

    嵌套,如果父级有定位,以父级为基准。如果父级没有定位,以html为基准

    offsetWidth 和 offsetHeight 盒模块的宽高。没有单位

    获取元素 内容宽高 + padding宽高 + border宽高 的和

  • 相关阅读:
    当前网页调用其他网页
    保护自己的网页不被放入框架
    保护网页源码
    页面的后退、刷新、前进
    妙味——拖拽+碰撞+重力
    运行代码
    妙味——弹性运动
    IE css bug及解决方案参考
    妙味——布局转换的应用
    [LeetCode][JavaScript]Count Complete Tree Nodes
  • 原文地址:https://www.cnblogs.com/zlf1914/p/12801731.html
Copyright © 2020-2023  润新知