【JavaScript】DOM之Document对象
JS(JavaScript)
一.Document对象
1.Document对象是什么
- Document对象
是DOM的基本规范也是重要的对象之一,以访问,更新页面内容的属性和方法
通过conslie。log()方法来Document对象打印,测试该对象的属性和方法
<body>
<script>
/*
document对象
* DOM预定义 - 已经被创建完毕了 - 允许直接使用
* 得到的是HTML页面的源代码 - 该对象代表当前HTML页面
*/
console.log(document);
// document的确是一个JavaScript对象
console.log(document instanceof Object);// true
// document对象的属性和方法被定义在原型上
console.log(Document.prototype);
// 不再需要我们创建了
var document = new Document();
console.log(document);
</script>
</body>
- 继承链关系
<body>
<script>
// document对象是继承于Node的
console.log(Document.prototype instanceof Node);
// node对象是继承于EventTarget的
console.log(Node.prototype instanceof EventTarget);
console.log(Document.prototype instanceof EventTarget);
// DOM中的对象之间的继承关系远比语法中的继承关系复杂
console.log(Document.prototype instanceof HTMLDocument);
</script>
</body>
2.定位页面元素
- getElementById()方法
该属性特点是唯一不可重复
<body>
<button id="ben">按钮</button>
<div id="q1"></div>
<script>
var buttonElement = document.getElementById('btn');
// 通过Document对象getElementById()方法定义元素
console.log(buttonElement instanceof Object);//true
/*
* 打印测试结果-对应元素HTML代码
* DOM是使用还是地道都应该是对象
*/
console.log(buttonElement instanceof HTMLButtonElement);
/*
* DOM提供一系列对象-对应HTML页面每个元素
* <button>元素都具有HTMLButtonElement对象
* <div>元素都具有HTMLDivElement对象
*/
var q1 = document.getElementById('q1');
console.log(q1 instanceof HTMLDivElement);//true
</script>
</body>
- getElementsByName()方法
name是参数表示定位元素name属性值
name属性不唯一 - 得到结果可能是一个或多个
<body>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<script>
var buttonElements = document.getElementsByName('btns');
// name属性不唯一 - 得到结果可能是一个或多个
console.log(buttonElements[0]);
console.log(buttonElements instanceof NodeList);//true
/*NodeList集合-类数组对象
* 得到每个对应元素,通过索引值
*/
</script>
</body>
- 节点集合NodeList
<body>
<button class="btns" id="btn">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<script>
var btnElements = document.getElementsByClassName('btns');
console.log(btnElements);//HTMLCollection
/* console.log(btnElements.length);//5
// 打印当前集合长度
var btn = document.getElementById('btn');
// 删除当前集合中某个元素
var body = document.body;
body.removeChild(btn);
console.log(btnElements.length);//4
// 再一次打印当前集合长度
*/
var buttonElements = document.querySelectorAll('.btns');
console.log(buttonElements);//NodeList
console.log(buttonElements.length);//5
// 打印当前集合长度
var btn = document.getElementById('btn');
// 删除当前集合中某个元素
var body = document.body;
body.removeChild(btn);
console.log(buttonElements.length);//5
// 再一次打印当前集合长度
</script>
</body>
- getElementsByTagName()方法
name是参数,表示定位元素的元素名
elements是返回值
<body>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<button name="btns">按钮</button>
<script>
var buttonElements = document.getElementsByTagName('button');
// HTMLCollection集合-类数组对象
console.log(buttonElements[0]);
</script>
</body>
- 定位元素元素属性
<body>
<button class="btns" id="btn">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<script>
console.log(document.documentElement);
// 获取到根元素(HTML)
console.log(document.head);
// 获取到头部(head)
console.log(document.body);
// 获取到文件内容(boby)
console.log(document.images);
// 获取到页面所有的图片(images)
</script>
</body>
- getElementsByClassName()方法
names是参数,表示定位元素的class属性值
names参数是可以是一个样式属性名称或多个样式属性名称
<body>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<script>
var buttonElement = document.getElementsByClassName('btns');
// HTMLCollection集合-类数组对象
console.log(buttonElements);
</script>
</body>
- querySelector()方法
是通过CSS选择器定位第一个匹配元素
selectors是参数表示选择器以多个逗号分隔,并包含一个或多个CSS选择器
element是返回值
<body>
<button id="btn">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<button class="btns">按钮</button>
<script>
var buttonElement1 = document.querySelector('#btn');
console.log(buttonElement1);
// 方法返回是第个匹配元素
var buttonElement2 = document.querySelector('.btns');
console.log(buttonElement2);
var buttonElements = document.querySelectorAll('.btns');
console.log(buttonElements);
// querySelectorAll()方法返回的是NodeList集合
</script>
</body>
3.创建页面元素
- 创建元素节点
tagName是参数,表示创建元素节点
element是返回值
<body>
<script>
var btn = document.createElement('button');
// 创建<button>元素
var body = document.body;
// 获取<body>元素
body.appendChild(btn);
// 向<body>元素增加子节点
</script>
</body>
- 创建文本节点
data是参数,表示文本节点的内容(字符串)
textNode是返回值
<body>
<script>
var btn = document.createElement('button');
// 创建<button>元素
var textNode = document.createTextNode('按钮');
// 创建文本节点
btn.appendChild(textNode);
// 向<button>元素增填子节点
var body = document.body;
// 获取<body>元素
body.appendChild(btn);
// 向<body>元素增添字节点
</script>
</body>
- 创建属性节点
name是参数是指属性节点的名称
attributeNode是返回值
<body>
<script>
// 1.创建<button></button>元素
var btn = document.createElement('button');
// 2.创建文本节点
var textNode = document.createTextNode('按钮');
// 3.向<button>元素添加子节点
btn.appendChild(textNode);
// 4.创建属性节点
var attrNode = document.createAttribute('id');
// 5.为属性节点设置值
attrNode.nodeValue = 'btn';
// 6.为<button>元素设置属性节点
btn.setAttributeNode(attrNode);
// 4.获取<body>元素
var body = document.body;
// 5.向<body>元素添加子节点
body.appendChild(btn);
</script>
</body>
【JavaScript】DOM之Document对象的更多相关文章
- 使用 JavaScript 中的 document 对象查找 HTML 元素,实现“登录”按钮的高亮特效 鼠标悬浮于“登录”按钮时,按钮高亮显示;
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象查找 HTML 元素,实现"登录"按钮的高亮特效 鼠标悬浮于"登录" ...
- 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色 实现思路: 在页面的 <body&g ...
- javascript之DOM(二Document对象)
javascript通过Document类型来表示文档.在浏览器中document是HTMLDocument对象(继承自Document)的一个实例,表示整个html页面.而且在浏览器中documen ...
- 【温故而知新-Javascript】使用 Document 对象
Document 对象时通往DOM功能的入口,它向你提供了当前文档的信息,以及一组可供探索.导航.搜索或操作结构与内容的功能. 我们通过全局变量document访问Document对象,它是浏览器为我 ...
- HTML DOM部分---document对象;
<style type="text/css"> #d3{ color:red} </style> </head> <body> &l ...
- JavaScript基础知识----document对象
对象属性document.title //设置文档标题等价于HTML的<title>标签document.bgColor //设 ...
- DOM中document对象的常用属性方法
每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1 document.anchors 返 ...
- js基础之DOM中document对象的常用属性方法
-----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1 document.an ...
- HTML DOM 实例-Document 对象
使用 document.write() 向输出流写文本 <html><body><script type="text/javascript">d ...
随机推荐
- 吴裕雄--天生自然python机器学习:K-近邻算法介绍
k-近邻算法概述 简单地说,谷近邻算法采用测量不同特征值之间的距离方法进行分类. 优 点 :精度高.对异常值不敏感.无数据输入假定. 缺点:计算复杂度高.空间复杂度高. 适用数据范围:数值型和标称型. ...
- VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能调用的API封装库
API函数很强大,但是声明的时候比较繁琐. 我开发的封装库,包括窗口.键盘.鼠标.消息等常用功能.用户不需要添加API函数的声明,就可以用到API的功能. 在VBA.VB6的引用对话框中引用API.t ...
- 复杂的Polygon
- springboot yml 文件配置oracle,提示账号密码错误
最近使用Spring boot,本来一直连接的是mysql数据库,一直没问题.昨天在更换了oracle数据库后,一直提示账号密码不正确,登录被拒绝.检查多次,检查账号密码一切正常,但就是连接不上ora ...
- SCI|EI|ISTP|万方|istic|NSTL|CASTD|CNKI|nlc|ethesys|CALIS|CETD|proquest|NDLTD|中国科学院学位论文检索系统|学位论文
BD AC D 三大检索指的是:SCI(科学引文索引 ).EI(工程索引 ).ISTP(科技会议录索引 ) 即Science Citation Index.Engineering Index.Conf ...
- 由情感计算带来的惊喜发现——记Rosalind W. PICARD“21世纪的计算”大会主题演讲
W. PICARD"21世纪的计算"大会主题演讲" title="由情感计算带来的惊喜发现--记Rosalind W. PICARD"21世纪的计算& ...
- 吴裕雄--天生自然Android开发学习:1.2.2 使用Android Studio开发Android APP
1.下载Android Studio 官网下载:Android Studio for Window ... :http://developer.android.com/sdk/installing/s ...
- LeetCode Day 2
LeetCode0004 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...
- java枚举与常量类的区别
1)枚举型可以直接与数据库打交道,我通常使用varchar类型存储,对应的是枚举的常量名.(数据库中好像也有枚举类型,不过也没用过) 2) switch语句支持枚举型,当switch使用int.Str ...
- fare|gave it away|catch a glimpse |involve|rip|eternalstiff|
N-COUNT 旅费;路费;车费A fare is the money that you pay for a journey that you make, for example, in a bus, ...