模拟dom结构

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="box">hello</div>
  <p id="p">world</p>
  <!-- 这是注释 -->
  <script>
    var box = document.getElementById(‘box‘);
    console.dir(box);
    // 创建一些列具有相同属性的对象,构造函数

    // 获取对象没有的属性,属性的值是undefined
    function Node(options) {
      // 设置属性的默认值
      this.className = options.className || ‘‘;
      this.id = options.id || ‘‘;
      // 跟节点相关的属性
      // 节点的名称,如果是元素的节点的话,是标签的名称
      this.nodeName = options.nodeName || ‘‘;
      // 节点的类型  如果是元素节点 1 属性节点 2  文本节点 3  数值类型
      this.nodeType = options.nodeType || 1;
      // 记录节点的值,如果是元素节点,始终是null
      this.nodeValue = options.nodeValue || null;
      // 记录子节点
      this.children = options.children || [];
    }

    // 创建html节点
    var html = new Node({
      nodeName: ‘html‘
    });

    // 创建head节点
    var head = new Node({
      nodeName: ‘head‘
    });
    // 设置html中的子节点 head
    html.children.push(head);
    // console.dir(html)

    // body
    var body = new Node({
      nodeName: ‘body‘
    })
    // 设置html中的子节点 body
    html.children.push(body);

    // div
    var div = new Node({
      nodeName: ‘div‘
    })
    // p
    var p = new Node({
      nodeName: ‘p‘
    })

    // 设置body的子节点
    body.children.push(div);
    body.children.push(p);

    console.dir(html);

    // 在运行的时候,浏览器内部维护了一颗DOM树
    // 1 深刻理解DOM
    // 2 了解节点相关的属性  nodeName  nodeType  nodeValue
    // 3 了解节点的层次结构
  </script>
</body>
</html>

原文地址:https://www.cnblogs.com/jiumen/p/11405763.html

时间: 2024-10-08 09:29:48

模拟dom结构的相关文章

React虚拟DOM具体实现——利用节点json描述还原dom结构

前两天,帮朋友解决一个问题: ajax请求得到的数据,是一个对象数组,每个对象中,具有三个属性,parentId,id,name,然后根据这个数据生成对应的结构. 刚好最近在看React,并且了解到其中的虚拟DOM,其实,就是利用json数据来代替DOM结构表示,然后利用这个json数据,渲染出DOM树,总体添加到页面中.下面,我就通过介绍我如何实现上面实际问题的思路,一边完成实际需求,一边实现React中虚拟DOM渲染成DOM的原理. 模拟数据结构如下: 1 var allJson = [{

LabVIEW设计模式系列——case结构模拟事件结构

标准:1.所有按钮的机械动作必须都用释放时触发或者单击时触发,这是为了保证仅仅触发一次动作. 标准:1.使用简单的case结构模拟事件结构.

jQuery EasyUI Datagrid组件的完整的基础DOM结构

该日志由 世纪之光 于2年前发表在datagrid分类下 转载: jQuery EasyUI Datagrid组件的完整的基础DOM结构 | WebUI框架使用参考+ http://www.easyui.info/archives/1157.html 关键字: datagrid源码分析, datagrid结构, easyui源码分析 标题可能有点长,什么叫“完整的基础DOM结构”,这里“基础”的意思是指这个结构不依赖具体数据,不依赖Datagrid的view属性,只要存在Datagrid实例就会

[Selenium]当DOM结构里面有iFrame,iFrame里面是html,怎么send keys to 里面的body,怎么用Assert进行验证?

我在测试的过程中遇到一个这样的问题,我无法通过CssSelector找到iFrame下边的html: <div id="mailEditorDiv" style="display: inline-block;"> <div class="maileditor"> <div style="height:130px;"> <div class="divBody">

whistle——真机移动端页面调试【查看、修改真机端的页面DOM结构及样式】

1.查看.修改真机端的页面DOM结构及样式[参考——https://imweb.io/topic/5981a34bf8b6c96352a59401]: 1.0.需要配置的rule——域名 weinre://随便某个分类命名[如:wq.jd.com weinre://test2——test2只是作为weinre的分类,防止一个weinre调试页面出现太多的连接]: 1.1.真机上访问某个页面,如访问微信下的发现>购物页面: 1.2.点击weinre下的,刚创建的分类test2,跳到http://1

怎样确保页面中的js代码一定是在DOM结构生成之后再调用

有这样一类问题, 如下所示, 就是在dom结构没有生成时就在js代码中调用了, 此时就会报错: <head> <script> console.log(document.body.nodeName); </script> </head> <body> </body> 上图所示的代码表明, 如果js代码在页面DOM没有解析出来时, document无法获取body元素, 这样就会造成报错. 解决方法有下面两种: 1. 将操作dom的代码

DOM结构

1.比较了window.onload与domReady之间的差异 window.onload=function{fun}fun会在dom树和文件图片等一切资源加载完成之后触发. domReady{fun}fun会在dom树构建完成之后触发.而不用等待一些文档和图片资源. domReady解决了window.onload因等待资源加载而导致的短时间的事件失效的问题. domReady的实现方法 domReady主要使用了浏览器的DOMcontentLoaded事件的监听,以及用Hack方法实现对I

模拟项目结构——观察者模式

观察者模式又叫做发布--订阅(Publish/Subscribe)模式.它的概念在我之前的博文中,也多次介绍过.今天,通过一个小Demo,模拟一下项目中使用观察者模式的基本结构. 概念回顾 首先,回顾一下观察者模式的概念. 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象.这个主体对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 对于这些概念的东西,我们要结合实例来理解,这里我们联想大话设计模式中的例子: 公司中有看球的观察者A,有炒股票的观察者B

JavaScript DOM结构

1.DOM 简介 文档对象模型(Document Object Model 简称DOM) 是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口. W3C已经定义了一系列的DOM接口 通过这些DOM接口可以改变网页的内容 结构和样式. 1.1 DOM树结构 文档:一个页面就是文档 DOM中使用document表示. 元素:页面中的所有标签都是元素 DOM中用element表示 节点:网页中所有的的内容都可以称之为节点(标签 属性 文本 注释等),DOM中使用node表示. DO