zoukankan      html  css  js  c++  java
  • DOM

    梳理一下脉络,重新认识一下JavaScript这门语言。

    DOM 是Document、Object、Model(文档对象模型)

    JavaScript通过ECMAScript编写程序让浏览器来解析,利用ECMAScript通过BOM(Browser Object Model)即浏览器对象模型,来操作浏览器窗口、浏览器导航对象、屏幕分辨率、浏览器历史、cookie等等。通过DOM操作HTML,赋予HTML行为。

    是对HTML标签、属性、文本解析后存放在内存中的倒置的树

    •树中的标签、属性、文本统称为节点(Node)

    •标签称为元素节点(Element)

    •属性称为属性节点(Atrribute)

    •文本称为文本节点(Text)

    •DOM的核心对象为document

    节点的关系:父节点、子节点、兄弟节点、前兄弟节点、后兄弟节点、叶子节点、根节点

    获取文档的根

    document.getDocumentElement;//获取HTML元素

    document.body;//获取body元素

    •Document 对象是 Window 对象的一部分,每个载入浏览器的 HTML 文档都会成为 Document 对象

    •Document 对象集合

    集合 描述
    all[] 提供对文档中所有HTML元素访问。
    anchors[] 返回对文档中所有Anchor对象的引用。
    applets 返回对文档对象所有Applet对象的引用。
    forms[] 返回对文档中所有Form对象引用。
    images[] 返回对文档中所有Image对象引用。
    links[] 返回对文档中所有Area和Link对象引用。

    document的常用属性

    属性

    描述

    URL

    返回当前文档的 URL。
    body

    提供对 <body> 元素的直接访问。

    对于定义了框架集的文档,该属性引用最外层的 <frameset>。

    documentElement 返回html dom中的root 节点 即<html>
    cookie 设置或返回与当前文档有关的所有 cookie。
    domain 返回当前文档的域名。
    lastModified 返回文档被最后修改的日期和时间。
    referrer 返回载入当前文档的文档的 URL。
    title 返回当前文档的标题。

    Document 对象方法

    方法

    描述
    close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据。
    getElementById() 返回对拥有指定 id 的第一个元素的引用。
    getElementsByName() 返回带有指定名称的元素集合。
    getElementsByTagName() 返回带有指定标签名的元素集合。
    getElementsByClassName() 返回带有指定类样式的元素集合。
    open()

    打开一个流,以收集来自任何 write() 或 writeln() 方法的输出。

    新建文档,覆盖原来的文档内容

    write() 向文档写 HTML 表达式 或 JavaScript 代码。
    writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。

    1、querySelector

    根据选择器查找元素,返回单个元素,无论选择器找到的元素有多少,只会返回第一个匹配的元素,如果未找到匹配的元素,则返回null。

    2、querySelectorAll

    根据选择器查找元素,返回元素集合,无论选择器找到的元素有多少,都会返回元素集合(NodeList),如果未找到匹配的元素,则返回空集合。

    Element对象

    •Element代表页面中的标签元素,如<div><a>

    •Element的尺寸属性

    属性

    描述
    element.offsetHeight 返回元素的高度。
    element.offsetWidth 返回元素的宽度。
    element.offsetLeft 返回元素的水平偏移位置。
    element.offsetParent 返回元素的偏移容器。
    element.offsetTop 返回元素的垂直偏移位置。
    element.clientHeight 返回元素的可见高度。
    element.clientWidth 返回元素的可见宽度。
    element.scrollHeight 返回元素的整体高度。
    element.scrollLeft 返回元素左边缘与视图之间的距离。
    element.scrollTop 返回元素上边缘与视图之间的距离。
    element.scrollWidth 返回元素的整体宽度。

    元素自身属性的操作

    属性 / 方法

    描述
    element.className 设置或返回元素的 class 属性。
    element.cloneNode() 克隆元素。
    element.id 设置或返回元素的 id。
    element.innerHTML 设置或返回元素的内容。
    element.nodeName 返回元素的名称。可能是元素名,也可能是属性名
    element.nodeType 返回元素的节点类型,1元素,2、属性,3、文本。
    element.nodeValue 设置或返回元素值。元素节点没有此属性
    element.style 设置或返回元素的 style 属性。
    element.tabIndex 设置或返回元素的 tab 键控制次序。
    element.tagName 返回元素的标签名。,只是元素
    element.textContent 设置或返回节点及其后代的文本内容。
    element.title 设置或返回元素的 title 属性。

    Element对象

    •属性的操作

    属性 / 方法

    描述
    element.attributes 返回元素属性的 NamedNodeMap。
    element.getAttribute() 返回元素节点的指定属性值。
    element.getAttributeNode() 返回指定的属性节点。
    element.hasAttribute() 如果元素拥有指定属性,则返回true,否则返回 false。
    element.hasAttributes() 如果元素拥有属性,则返回 true,否则返回 false。
    element.setAttribute() 把指定属性设置或更改为指定值。
    element.setAttributeNode() 设置或更改指定属性节点。

    •父及兄弟元素的操作

    属性

    描述
    element.nextSibling 返回位于相同节点树层级的下一个节点。
    element.ownerDocument 返回元素的根元素(文档对象)。
    element.parentNode 返回元素的父节点。
    element.previousSibling 返回位于相同节点树层级的前一个节点。

    •子元素的操作

    属性

    描述
    element.childNodes 返回元素子节点的 NodeList。
    element.firstChild 返回元素的首个子节点
    element.getElementsByTagName() 返回拥有指定标签名的所有子元素的集合。
    element.hasChildNodes() 如果元素拥有子节点,则返回 true,否则 false。
    element.lastChild 返回元素的最后一个子节点。
    element.appendChild() 向元素添加新的子节点,作为最后一个子节点。
    element.insertBefore() 在指定的已有的子节点之前插入新节点。
    element.removeChild() 从元素中移除子节点。
    element.replaceChild() 替换元素中的子节点。
    nodelist.item() 返回 NodeList 中位于指定下标的节点。
    nodelist.length 返回 NodeList 中的节点数。

    创建新的元素

    documet.createElement("div");

    添加内容

    innerHTML = ""

    innerText = ""

  • 相关阅读:
    MySQL5.7 多实例
    千万不要去考验人性
    Mysql事件监控日志
    chmod a+r file:给所有用户添加读的权限
    percona-toolkit 之 【pt-summary】、【pt-mysql-summary】、【pt-config-diff】、【pt-variable-advisor】说明
    腾讯游戏DBA团队的发展自白
    致DBA:为什么你经常犯错,是因为你做的功课不够
    这套方法论,彻底终结MySQL同步延迟问题
    gh-ost:不一样的在线表结构变更
    初试GH-OST(转)
  • 原文地址:https://www.cnblogs.com/QQPrincekin/p/10458835.html
Copyright © 2011-2022 走看看