• DOM系统学习-进阶


    DOM类型

        Node类型:

            常用类型:

        ​    ​    ​元素节点 ELEMENT_NODE

        ​    ​    ​属性节点 ATTRIBUTE_NODE

        ​    ​    ​文本节点 TEXT_NODE

            IE不支持节点类型常量名、兼容方案:

    1
    2
    3
    4
    5
    6
    if (typeof Node == 'undefined') { //IE 返回
        window.Node = {
            ELEMENT_NODE : 1,
            TEXT_NODE : 3
        };
    }


        Document类型:

            获取元素

                document.documentElement

                document.doctype

                document.body

            属性

                document.title

                document.URL

                document.domian

                document.referrer

            对象集合

                document.forms

                document.images

                document.anchors 获取带name的a元素

                document.links 获取带href的a元素

        Text类型:

            同时创建两个同级别的文本节点,会产生分离的两个节点

            文本节点合并 box.normalize();

            文本节点分割 box.firstChild.splitText(3);

            其他方法

                deleteData(offset,count) 删除文本数据

                insertData(offset,str) 插入文本数据

                replaceData(offset,count,str) 替换文本数据

                substringData(offset,count) 截取文本数据


    DOM扩展

        呈现模式:

            标准模式8 CSS1Compat

                判断为标准模式 document.documentMode > 7

            仿真模式7

            混杂模式5 BackCompat

        滚动:

            设置指定可见 

    1
    ele.scrollIntoView();

        children属性:

            获取子元素节点(去除空白节点)

        contains():

            父元素是否包含子元素


    DOM操作内容

        innerText:

            获取元素内的文本内容,html会过滤

            设置元素内的文本内容,hmtl会转义

            firefox除外都支持,firefox兼容方法textContent

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function getInnerText(element) {
        if (typeof element.textContent == 'string') {
            return element.textContent;
        else {
            return element.innerText;
        }
    }
    function setInnerText(element, text) {
        if (typeof element.textContent == 'string') {
            element.textContent = text;
        else {
            element.innerText = text;
        }
    }

        innerHTML:

            获取元素内的内容,html不过滤

        ​    ​设置元素内的内容,hmtl会解析,script,style不会解析

        outerText:

            和innerText一样,包括自身,不支持firefox

        outerHTML:

            和innerHTML一样,包括自身

    DOM系统学习-进阶.png 

  • 相关阅读:
    Java单例模式
    Java中子类覆盖父类方法所必须满足的条件
    Java中break、continue及标签等跳转语句的使用[下]
    CSS控制图片显示区域
    rabbitmq 用户管理
    rabbitmq web管理页面无法访问
    centos6.5 以 zero-dependency Erlang from RabbitMQ 搭建环境
    docker 解决:Get http:///var/run/docker.sock/v1.19/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
    解决:java.lang.ArrayIndexOutOfBoundsException: 160 at com.alibaba.fastjson.serializer.SerializeWriter.writeStringWithDoubleQuote(SerializeWriter.java:868)
    centos 解决:Another app is currently holding the yum lock; waiting for it to exit
  • 原文地址:https://www.cnblogs.com/ybbqg/p/6434637.html
Copyright © 2020-2023  润新知