JS-DOM节点

时间:2020-02-24 16:48:57   收藏:0   阅读:54

DOM

全称:文档对象模型 / Document Object Model

作用: 定义一系列标准对象,通过对象给我们提供的方法来访问节点、操作(增删改查)节点(HTML元素),Dom中一切都是对象,包含方法以及属性。所有的操作都是从对象开始。

在Dom中所有的内容都会被解析为一个节点(对象 ),会形成一个倒挂的树状图,这是其在内存中的存储方式。

节点:

节点分类

节点类型共有12种,

  1. 元素节点 、 HTML标签

  2. 属性节点 、 HTML标签中的属性

  3. 文本节点 、 页面中可以看到的内容

  4. 注释节点 、 HTML中的注释

    (1\2\3常用)

节点关系
  1. 父节点/parentNode

  2. 子节点/chlidNode

    第一个子节点/fristChild

    最后一个子节点/lastChild

  3. 兄弟节点

    下一个兄弟/nextSibiling

    上一个兄弟/previousSibiling

查找节点方法:
//1.根据id
    let idHtml = document.getElementById("Id值");
    //发方法返回一个对象,id值唯一


    idHtml.innerHTML
    idHtml.innerText
    //获取标签中的内容

    idHtml.innerHTML = "内容";
    //修改HTML标签种的内容,识别标签
    //idHtml.innerHTML = “<p>这是一个标签</p>”

    idHtml.innerText = "内容";
    //修改HTML标签种的内容,不识别标签-会把标签都当做文本

//2.根据元素标签
    let tagList = document.getElementsByTagName("标签名称");
    //返回节点集合对象 nodeList 可以作为只读数组处理-(可以用数组的方式,获得某个节点)
    //tagList.length 获得该集合该元素的个数
    //存放顺序为原文档中的书写循序


    let tagOne = tagList[0];
    //获取当前标签的第一个元素节点

    let tagOne = document.getElementsByTagName("标签名称")[0];
    //上述的简写

    let tagOne = document.getElementsByTagName("标签名称1")[0]
                            .getElementsByTagName("标签名称2")[0];
    //找到标签1下边的标签2元素
    //操作标签中内容同id查找

//3.根据name属性的值
    let nameList = document.getElementsByName("name属性的值");
    //根据元素name属性的值来获取元素对象的集合
    //用法类似 根据元素标签(2)寻找元素
    //注意!!!!该方法主要针对表单元素来使用
    //对于表单元素 name是自身属性 对于非表单元素来说 name是自定义属性
    //对于IE浏览器有区别,Google、火狐没区别

//4.根据Class属性的值--推荐使用,但它具有兼容性(IE不支持)
    let classList = document.getElementsByClassName("name属性的值");
    //根据元素Class属性的值来获取元素对象的集合
    //用法类似 根据元素标签(2)寻找元素

//兼容函数-以根据Class属性查询为例
    function MyGetElementsByClassName(clazzName){
        var classList = [];
        //document.all IE支持该属性
        //是IE则有值为true,不是IE则无值为false
        if(document.all){
            var objList = document.getElementsByTagName("*");
            for(var obj of objList){
                if(obj.className == clazzName)
                    classList.push(obj);
            }
        }else{
            classList = document.getElementsByClassName(clazzName);
        }
        return classList;
    }

 

原文:https://www.cnblogs.com/-Archenemy-/p/12357366.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!