首页 > 编程语言 >DOM-概述、DOM_Document对象_创建DOM对象、DOM_Node对象

DOM-概述、DOM_Document对象_创建DOM对象、DOM_Node对象

时间:2022-10-26 16:46:33浏览次数:43  
标签:Node DOM 对象 var document 节点 div1

DOM-概述

概念: Document Object Model 文档对象模型

  将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作

W3C DOM 标准被分为 3 个不同的部分:

  核心 DOM - 针对任何结构化文档的标准模型

    Document:文档对象

    Element:元素对象

    Attribute:属性对象

    Text:文本对象

    Comment:注释对象

 

    Node:节点对象,其他5个的父对象

  XML DOM - 针对 XML 文档的标准模型

  HTML DOM - 针对 HTML 文档的标准模型

 

DOM_Document对象_创建DOM对象

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document对象</title>

</head>
<body>


<!--id为div1的盒子-->
<div id="div1">div1</div>

<!--id为div2的盒子-->
<div id="div2">div2</div>

<!--id为div3的盒子-->
<div id="div3">div3</div>

<!--id为div4的盒子-->
<div class="cls1">div4</div>

<!--id为div5的盒子-->
<div class="cls1">div5</div>

<!--框子-->
<input type="text" name="username">

<script>
  /*
  Document:文档对象
      1. 创建(获取):在html dom模型中可以使用window对象来获取
          1. window.document
          2. document
      2. 方法:
          1. 获取Element对象:
              1. getElementById()    : 根据id属性值获取元素对象。id属性值一般唯一
              2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
              3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
              4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
          2. 创建其他DOM对象:
              createAttribute(name)
              createComment()
              createElement()
              createTextNode()
      3. 属性



   */

  //2.根据元素名称获取元素对象们。返回值是一个数组
  var divs = document.getElementsByTagName("div");

  //页面弹窗
  alert(divs.length);

  //3.根据Class属性值获取元素对象们。返回值是一个数组
  var div_cls = document.getElementsByClassName("cls1");

  //页面弹窗
  alert(div_cls.length);


  //4.根据name属性值获取元素对象们。返回值是一个数组
  var ele_username = document.getElementsByName("username");

  //页面弹窗
  alert(ele_username.length);

  //createElement 通过指定名称创建一个元素
  var table = document.createElement("table");

  // 页面弹窗
  alert(table);


</script>
</body>
</html>

 

DOM_Node对象

Node:节点对象,其他5个的父对象

  特点:所有dom对象都可以被认为是一个节点

方法:
  CRUD dom树:

    appendChild():向节点的子节点列表的结尾添加新的子节点。

    removeChild() :删除(并返回)当前节点的指定子节点。

    replaceChild():用新节点替换一个子节点。

属性:

    parentNode 返回节点的父节点。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Node对象</title>
  <style>

/*<!--    所有的div盒子-->*/
    div {

      /*边框1,实线,红色*/
      border: 1px solid red;

    }

    /*id为div1的盒子*/
    #div1 {

      /*宽200*/
      width: 200px;

      /*高200*/
      height: 200px;
    }

    /*id为div2的盒子*/
    #div2 {

      /*宽100*/
      width: 100px;

      /*高100*/
      height: 100px;
    }

    /*id为div3的盒子*/
    #div3 {

      /*宽100*/
      width: 100px;

      /*高100*/
      height: 100px;
    }

  </style>

</head>
<body>

<!--设置盒子名称为div1-->
<div id = "div1">

<!--  设置盒子名称为div2-->
  <div id = "div2">div2</div>

<!--  di为div1盒子的内容-->
  div1
</div>

<!--a标签 超链接 名字为del-->
<!--<a href = "javascript:void(0);" id = "del">删除子节点</a>-->

<!--超链接,名字为add-->
<a href = "javascript:void(0);" id = "add">添加子节点</a>

<!--删除按钮-->
<input type="button" id="del" value="删除子节点">
<script>

  //1.获取超链接
  var element_a = document.getElementById("del");

  //2.绑定单击事件
  element_a.onclick = function(){
    //获取div1盒子
    var div1 = document.getElementById("div1");

    //获取div2盒子
    var div2 = document.getElementById("div2");

    //删除盒子
    div1.removeChild(div2);
  }

  //1.获取超链接
  var element_add = document.getElementById("add");

  //2.绑定单击事件
  element_add.onclick = function() {

    //获取div1的盒子
    var div1 = document.getElementById("div1");
    //给div1添加子节点

    //创建div节点
    var div3 = document.createElement("div");
    div3.setAttribute("id","div3");

    //添加盒子
    div1.appendChild(div3);
  }


  /*
      超链接功能:
          1.可以被点击:样式
          2.点击后跳转到href指定的url

      需求:保留1功能,去掉2功能
      实现:href="javascript:void(0);"
   */

  //获取div2的盒子
  var div2 = document.getElementById("div2");

  //返回指定节点的父节点
  var div1 = div2.parentNode;

  //页面弹窗
  alert(div1);

</script>
</body>
</html>

 

标签:Node,DOM,对象,var,document,节点,div1
From: https://www.cnblogs.com/yuzong/p/16828954.html

相关文章

  • 如何选择360评估的评价对象?
    评价对象,有时候也被称为被评价者,即360评估反馈活动中需要被评价的人员。确定评价对象时需遵循两个原则:一、服务于评估目的清晰、明确的评估目的是360评估反馈活动是否能......
  • 234. 面向对象(上)综合练习题 题面
    234.综合练习题1235.综合练习题2......
  • 第十六章:面相对象进阶以及内容补充(1)
    第十六章:面相对象进阶以及内容补充本章内容知识点:迭代器生成器装饰器实例方法静态方法类方法@property装饰器集合类型迭代器迭代器对象要求支持迭代器协议的......
  • day5可迭代对象与迭代器和生成器
    day5.可迭代对象与迭代器和生成器1.迭代器的基本概念1.1.什么是迭代器迭代就是更新换代1.1.迭代器指的是迭代取值的工具1.2.迭代是一个重复的过程,每一次重......
  • 究竟什么是Shadow DOM?
    shadowdom是什么?顾名思义,shadowdom直译的话就是影子dom,但我更愿把它理解为DOM中的DOM。因为他能够为Web组件中的DOM和CSS提供了封装,实际上是在浏览器渲染文档的时候会......
  • Nodejs相关ORM框架分析
    概述写这篇blog的原因,想找个node的ORM框架用用,确很难找到一篇对比分析这些ORM框架的文章,唯一找到了一篇,居然是通过star数来论英雄,我觉着很难服众,于是就找几个看看。后来又......
  • 在linux系统中安装Nodejs 的简单步骤说明
    一、首先我们要下载Nodejs安装包 1、可以从官网上https://nodejs.org/zh-cn/download/ ,下载合适自己的安装包。大家可以根据自己的服务器下载不同的安装包,通过uname......
  • 判断一个实体类entity对象是否为空
    /***判断实体对象是否为空*@paramobjectentity对象*@returnboolean*/publicstaticbooleancheckObjAllFieldsIsNull(Objectobject){//如果对象为null直接......
  • Nodejs:ESModule和commonjs,傻傻分不清
    最近写nodejs脚本的时候遇到了commonjs和ESModule的问题,正好之前用得稀里糊涂的,这次好好学习一下。ESModule导出仅导出namedexports:命名导出,每次可以导出一个或......
  • Java反射之类的字节码对象的三种调用方式和JDBC【多测师】
    类的字节码对象:packagecom.section02;importorg.apache.log4j.Logger;importcom.section01.Student;/***@authorxiaoshu*同一个类在JVM中只存在一份字节码对象*也就是......