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对象的更多相关文章

  1. 使用 JavaScript 中的 document 对象查找 HTML 元素,实现“登录”按钮的高亮特效 鼠标悬浮于“登录”按钮时,按钮高亮显示;

    查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象查找 HTML 元素,实现"登录"按钮的高亮特效 鼠标悬浮于"登录" ...

  2. 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色

    查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色 实现思路: 在页面的 <body&g ...

  3. javascript之DOM(二Document对象)

    javascript通过Document类型来表示文档.在浏览器中document是HTMLDocument对象(继承自Document)的一个实例,表示整个html页面.而且在浏览器中documen ...

  4. 【温故而知新-Javascript】使用 Document 对象

    Document 对象时通往DOM功能的入口,它向你提供了当前文档的信息,以及一组可供探索.导航.搜索或操作结构与内容的功能. 我们通过全局变量document访问Document对象,它是浏览器为我 ...

  5. HTML DOM部分---document对象;

    <style type="text/css"> #d3{ color:red} </style> </head> <body> &l ...

  6. JavaScript基础知识----document对象

    对象属性document.title                 //设置文档标题等价于HTML的<title>标签document.bgColor               //设 ...

  7. DOM中document对象的常用属性方法

    每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1  document.anchors  返 ...

  8. js基础之DOM中document对象的常用属性方法

    -----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1  document.an ...

  9. HTML DOM 实例-Document 对象

    使用 document.write() 向输出流写文本 <html><body><script type="text/javascript">d ...

随机推荐

  1. php先响应后处理

    php响应异步请求或者返回时效要求高的接口中,可以先响应输出,再执行逻辑处理保存数据等任务 ob_end_clean(); ob_start(); echo '{"data":&q ...

  2. springboot FreeMarker template error

    注释掉<#list>xxx</#list> 现在运行就不报错了

  3. StartDT AI Lab | 视觉智能引擎之算法模型加速

    通过StartDT AI Lab专栏之前多篇文章叙述,相信大家已经对计算机视觉技术及人工智能算法在奇点云AIOT战略中的支撑作用有了很好的理解.同样,这种业务牵引,技术覆盖的模式也收获了市场的良好反响 ...

  4. idea整合mybatis逆向工程

    --pom.xml添加插件 <build> <finalName>hnapi</finalName> <plugins> <plugin> ...

  5. day39-进程-队列

    #队列Queue:进程之间数据是隔离的,不共享的,但是通过multiprocessing的Queue可以实现进程之间的通信. #1.先进先出:把1 2 3放到队列里,按1 2 3的顺序拿出来. fro ...

  6. Docker系列一: docker简介及基本环境安装

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  7. python学习笔记(15)pymysql数据库操作

    pymysql数据库操作 1.什么是PyMySQL 为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库. PyMySQL : 这是一个使Python连接到MySQL的库,它 ...

  8. 如何处理xml文件!看看这里

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  9. 《C Prime Plus》第八节笔记

    第八节 字符输入/输出和输入验证 8.1 单字符I/O:getchar()和putchar() getchar()和putchar()包含在stdio.h头文件中 8.2 缓冲区 无缓冲输入: 直接回 ...

  10. 在CMD中操作mysql数据库出现中文乱码解决方案

    百度了一下..有说将cmd字符编码用chcp命令改为65001(utf8字符编码),可这样之后根本无法输入中文,查询出的中问结果依旧乱码 其实,只要保证cmd客户端和MySQL两者编码一致即可. 但现 ...