剑指前端(前端入门笔记系列)——DOM(基本组成与操作)
- DOM是document Object Model的缩写,简称文档对象模型(文档、模型)。这个对象就是document
- DOM的结构(页面的结构):树状结构,家族结构
- DOM的组成(成员):节点
- DOM是js操作页面的一个入口对象
- DOM可以将任何HTML和XML文档描绘成一个多层节点构成的结构
- DOM结构中的每一个成分称为一个节点,节点分为几种不同的类型,每种类型都拥有各自不同的特点、数据和方法。每个节点与其他节点存在某种关系,所以节点之间的关系构成了层次。文档节点是每个文档的根节点。<html>元素是文档节点的子节点,被称为文档元素,每个文档只能有一个文档元素
- 每一段标记都可以通过树中的一个节点来表示:元素通过元素节点来表示,特性通过特性通过特性节点来表示,文档通过文档节点来表示,而注释通过注释节点来表示,总能共有十二种类型,这些类型都继承自一个基类型。
- HTML中,文档元素始终是<html>元素
- XML中,没有预定义的元素,因此任何元素都可能成为文档元素
- Node.ELEMENT_NODE //元素节点对应的常量,对应数字值1
- Node.ATTRIBUTE_NODE //属性节点对应的常量,对应数字值2
- Node.TEXT_NODE //文本节点对应的常量,对应数字值3
- Node.CDATA_SECTION_NODE //CDATA区段对应的常量,对应数字值4
- Node.ENTITY_REFERENCE_NODE //实体引用元素对应的常量,对应数字值5
- Node.ENTITY_NODE //实体对应的常量,对应数字值6
- Node.PROCESSING_INSTRUCTION_NODE //表示处理指令对应的常量,对应数字值7
- Node.COMMENT_NODE //注释节点对应的常量,对应数字值8
- Node.DOCUMENT_NODE //最外层的根节点对应的常量,对应数字值9
- Node.DOCUMENT_TYPE_NODE //<!DOCTYPE………..>对应的常量,对应数字值10
- Node.DOCUMENT_FRAGMENT_NODE //文档碎片节点对应的常量,对应数字值11
- Node.NOTATION_NODE //DTD 中声明的符号节点对应的常量,对应数字值12
- 自身信息
<div id="box"></div>
<script type="text/javascript">
var oBox = document.getElementById("box");
if(oBox.nodeType == Node.ELEMENT_NODE){
console.log("元素节点");
}else {
console.log("不是元素节点");
}
</script>

<div id="box"></div>
<script type="text/javascript">
var oBox = document.getElementById("box");
if(oBox.nodeType == 1){
console.log("元素节点");
}else {
console.log("不是元素节点");
}
</script>
- 节点关系
- 父子关系
<div id="box">
<p>段落1</p>
<p>段落2</p>
<!--注释123-->
<p>段落3</p>
</div>
<script type="text/javascript">
var oBox = document.getElementById("box");
var firstChild_1 = oBox.childNodes[0];
var firstChild_2 = oBox.firstChild;
var firstChild_3 = oBox.childNodes.item(0);
var lastChild = oBox.lastChild; var count = oBox.childNodes.length;
console.log("所有子节点:" , oBox.childNodes);
console.log("第一个子节点:" , firstChild_1);
console.log("第一个子节点:" , firstChild_2);
console.log("第一个子节点:" , firstChild_3);
console.log("最后一个子节点:" , lastChild);
console.log("子节点的数量:" , count);
</script>

<div id="box">
<p class="p1">段落1</p>
<p>段落2</p>
<!--注释123-->
<p>段落3</p>
</div> <script type="text/javascript">
var oP= document.getElementsByClassName("p1")[0];
var parent = oP.parentNode;
console.log("父节点为:" , parent);
</script>
- 兄弟关系
<div id="box">
<p class="p1">段落1</p>
<span></span>
<h1>段落2</h1>
<!--注释123-->
<p>段落3</p>
</div> <script type="text/javascript">
var oP= document.getElementsByClassName("p1")[0];
var preSibling = oP.previousSibling;
var nextSibling = oP.nextSibling;
console.log("前一个兄弟节点为:" , preSibling);
console.log("后一个兄弟节点为:" , nextSibling);
</script>
剑指前端(前端入门笔记系列)——DOM(基本组成与操作)的更多相关文章
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- 《剑指offer》解题笔记
<剑指offer>解题笔记 <剑指offer>共50题,这两周使用C++花时间做了一遍,谨在此把一些非常巧妙的方法.写代码遇到的难点.易犯错的细节等做一个简单的标注,但不会太过 ...
- 剑指Offer——Java实现栈和队列的互模拟操作
剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列 题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型. 思路:其实就是把队列正常入 ...
- 《剑指offer》读书笔记
二叉树 重建二叉树 面试题6:(p55) 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. 假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1, 2, 4 ...
- 剑指前端(前端入门笔记系列)——DOM(元素大小)
DOM——元素大小 DOM中没有规定如何确定页面中与元素的大小,IE率先映入了一些属性来确定页面中元素的大小,以便开发人员使用,目前,所有主要的浏览器都已经支持这些属性了. 1.偏移量(单位为 ...
- 剑指前端(前端入门笔记系列)——DOM(属性节点)
DOM(属性节点) 属性节点没有过参加家族关系中,其专用选择器:attributes,返回值为对象的形式,它的键是索引值,也就是用对象模拟了一个伪数组,DOM中选择器返回的都是伪数组(可以使用数组的形 ...
- 剑指前端(前端入门笔记系列)——DOM(元素节点)
DOM(元素节点) 本文介绍了元素节点的基本操作:增删改查 增 新增一个元素节点分为两步(二者缺一不可),第一步:创建元素节点,第二步:将创建的元素节点插入到指定元素节点中(也就是插入指定元素节点 ...
- 剑指前端(前端入门笔记系列)—— JS基本数据类型及其类型转换
基本数据类型 ECMAScript中有5中简单数据类型性(也称为基本数据类型):Undefined.Null.Boolean.Number和String,还有一种复杂数据类型——Object,Obje ...
- 剑指前端(前端入门笔记系列)——BOM
BOM ECMAScript是JavaScript的核心,但如果要在Web中使用JavaScript,那么BOM(浏览器对象模型)则无疑才是真正的核心,BOM提供了很多对象,用于访问浏览器的功能,这些 ...
随机推荐
- c# 关于反射
反射的用途大体总结:1.使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从程序集中查找类型并创建该类型的实例.CreateInstance2.使用Module了解包含模块的程序集 ...
- ESP8266 LUA脚本语言开发: 测试下诱人的程序
前言 这一节测试一下诱人的程序 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, APP显示ESP8266采集的温湿度数据. 简而言 ...
- contest5 CF991 div2 ooooxx ooooox ooooox
题意 div2D 给出一个棋盘, 有一些点不能放, 总共\(2\)排, 长度\(n(\le 100)\) 在上面空位摆放\('L'\)字形的牌, 问最多能放几个 例如: 00X00X0XXX0 0XX ...
- 深入解析ES6中的promise
作者 | Jeskson来源 | 达达前端小酒馆 什么是Promise Promise对象是用于表示一个异步操作的最终状态(完成或失败)以及其返回的值. 什么是同步,异步 同步任务会阻塞程序的执行,如 ...
- Web项目中使用Log4net 案例
简介: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题. 经验表明,日 ...
- 请教网友:#pragma pack(push) #pragma pack(pop)无效
//try 一 try #pragma back(push) #pragma pack(2) struct E { char a; short b; double c; float d; char e ...
- 石锤了!google彻底断供华为,只能加速鸿蒙生态的形成
前言 操作系统是当今科技行业的灵魂,而即将推出这款操作系统是一个集电脑.手机.汽车等设备于一体的系统.如今手机行业里已经是一片红海了,竞争相当激烈,但是竞争归竞争,但是一旦扯上别的事就更麻烦了,像华为 ...
- @Import导入自定义选择器
@Import导入自定义选择器 之前一篇博文:Spring中的@Import注解已经详细介绍了@Import注解,不赘述. 需求描述 通过@import注解自定义组件选择器,将满足我们自定义的规则的b ...
- python mysqldb批量执行语句executemany
MySQLdb提供了两个执行语句的方法,一个是execute(),另一个是executemany() execute(sql) 可接受一条语句从而执行 executemany(templet,args ...
- CentOS7 下 yum 安装 Docker CE
前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker 官网有安装步骤,本文只是记录 ...