美文网首页初学前端
JavaScript中的Dom1节点介绍

JavaScript中的Dom1节点介绍

作者: 简约酒馆 | 来源:发表于2019-11-03 20:14 被阅读0次

    当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。 

    DOM是“Document Object Model”(文档对象模型)的首字母缩写。

    什么是DOM?

    文档对象模型 -通过dom可以动态改变文档的内容

    动态改变文档内容的原理:

    1.解析dom树(如HTML)并生成DOM树

    2.通过DOM标的接口+编程语言改变文档的内容

    DOM节点

    在HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的HTML。

    HTML文档中的所有内容都是节点:

    整个文档是一个文档节点

    每个HTML 元素是元素节点

    HTML元素内的文本是文本节点

    每个HTML 属性是属性节点

    注释是注释节点

    DOM节点的关系

    n节点父、子和同胞

    节点树中的节点彼此拥有层级关系。

    父(parent)、子(child)和同胞(sibling)等术语用于描述 这些 关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

     在节点树中,顶端节点被称为根(root)

    每个节点都有父节点、除了根(它没有父节点)

     一个节点可拥有任意数量的子节点

    同胞是拥有相同父节点的节点

    DOM树形结构

    HTML DOM 节点树

    HTML DOM 将 HTML文档视作树结构。这种结构被称为节点树:


    DOM节点类型

    节点属性


    1.nodeName

    定义和用法

    nodeName 属性指定节点的节点名称。

    如果节点是元素节点,则 nodeName 属性返回标签名。

    如果节点是属性节点,则 nodeName 属性返回属性的名称。

    文本节点的nodeName 永远  #text

    对于其他节点类型,nodeName 属性返回不同节点类型的不同名称。

    2.nodeValue

    定义和用法:nodeValue属性设置或返回指定节点的节点值。

    注释:如果您希望返回元素的文本,请记住文本始终位于文本节点中,并且您必须返回文本节点的值(element.childNodes[0].nodeValue)。

    对于元素节点,因为本身不直接包含文本,所以nodeValue是不可用的。返回永远是null

    3.nodeType

    定义和用法:nodeType 属性返回以数字值返回指定节点的节点类型。

    如果节点是元素节点,则 nodeType 属性将返回 1。

    如果节点是属性节点,则 nodeType 属性将返回 2。

    如果节点是文本节点,则 nodeType 属性将返回 3。

    如果节点是注释节点,则 nodeType 属性将返回 8。

    getElementById()

    getElementById()方法可返回对拥有指定ID 的第一个对象的引用。

    在操作文档的一个特定的元素时,最好给该元素一个id 属性,为它指定一个(在文档中)唯一的名称,然后就可以用该ID 查找想要的元素。

    getElementsByName()

    getElementsByName()方法可返回带有指定名称的对象的集合。

    语法:document.getElementsByName(name)

    另外,因为一个文档中的name 属性可能不唯一(如HTML 表单中的单选按钮通常具有相同的name 属性),所有getElementsByName()方法返回的是元素的数组,而不是一个元素

    getElementsByTagName()

    getElementsByTagName() 方法可返回带有指定标签名的对象的集合。(数组)

    getElementsByTagName()方法返回元素的顺序是它们在文档中的顺序。

    如果把特殊字符串 "*" 传递给getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。

    注释:传递给getElementsByTagName() 方法的字符串可以不区分大小

    getElementsByClassName()

    返回文档中所有指定类名的元素集合

    元素属性


    innerHTML

    innerHTML属性设置或返回标签的开始和结束标签之间的HTML

    outerHTML

    outerHTML.当前元素的开始标记和结束标记之间的所有文本和HTML标签


    outerText 设置(包括标签)或获取(不包括标签)对象的文本 

    innerText 设置或获取位于对象起始和结束标签内的文本 

    四者的区别

    简单的说innerHTML和outerHTML、innerText与outerText的不同之处在于: 1)、innerHTML与outerHTML在设置对象的内容时包含的HTML会被解析,而innerText与outerText则不会。2)、在设置时,innerHTML与innerText仅设置标签内的文本,而outerHTML与outerText设置包括标签在内的文本。 

    getAttribute()

    getAttribute()方法返回指定属性名的属性值

    setAttribute()

    setAttribute()方法添加指定的属性,并为其赋指定的值。如果这个指定的属性已存在,则仅设置/更改值  

    语法: element.setAttribute(属性名,属性值)

    tagName

    tagName 属性返回被选元素的标签名

    语法:elementNode.tagName

    与nodeName的区别: tagName只能用在元素节点上;而nodeName可以用在任何的节点上。


    相关文章

      网友评论

        本文标题:JavaScript中的Dom1节点介绍

        本文链接:https://www.haomeiwen.com/subject/nsdlbctx.html