第十一章 DOM扩展

一.选择符API

1.querySelector()方法

            接收一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null。

2.querySelectorAll()方法

        返回所有名为xxx的元素。

3.matchesSelector()方法

二.元素遍历

三.HTML5

1.与类相关的扩充

                1).getElementByClassName()方法
                    //取得所有类中包含“username”和“current”的元素,类名的先后顺序无所谓
                    var allCurrentUsernames = document .getElementByClassName("username current");
                    //取得ID为“myDiv”的元素中带有类名“selected”的所有元素
                    var selected = document.getElementById("myDiv").getElementByClassName("selected");
                2).classList属性
                   add(value):将给定的字符串值添加到列表中
                    contains(value):表示列表中是否存在给定值
                    remove(value):删除给定字符串
                    toggle(value):如果有,删除,没有就添加 

2.焦点管理

                元素获得焦点的方式有页面加载、用户输入、在代码中调用focus()
                document.activeElement属性
                document.hasFocus()方法
                -通过检测文档是否获得了焦点,可以知道用户是不是正在与页面交互

3.HTMLDocument的变化

                1)readyState属性
                    loading 正在加载文档
                    complete 已经完成加载
                2)兼容模式
                    compatMode属性
                3)head属性
                    var head=document.head||document.getElementsByTagName("head")[0];
                    //如果可用,就用head属性,否则使用后者

4.字符集属性

                charset属性表示文档中实际使用的字符集
                defaultCharset表示根据默认浏览武器及操作系统设置,当前文档的默认字符集应该是什么

5.自定义数据属性

                html5规定可以为元素添加非标准的属性,但要添加data-,
                谈加厚可以用元素的dataset访问

6.插入标记

            1)innerHTML属性
                标签的innerHTML为标签内所包含的内容(不同浏览器返回的大小写有所区别)
                通过innerHTML插入<script>无效
                可插入style元素
            2)outerHTNL属性
               替换元素 
            3)insertAdjacentHTML()方法
                包含两个参数,一个是要插入的位置,另一个是要插入的文本
                第一个参数:
                "beforebegin",在当前元素之前插入一个紧邻的同辈元素
                "afterbegin",在当前元素的下一辈插入子元素,子元素在之前存在的子元素之前
                "beforeend",在当前元素的下一辈插入子元素,子元素在之前存在的子元素之后
                "afterend",在当前元素之后插入一个紧邻的同辈元素
            4)内存与性能问题
                避免:
               for(var i=0,len=values.length;i<len;i++){
                        ul.innerHTML+="<li>"+values[i]+"</li>";
               }
                推荐方法:
                var itemsHTML=“”;
                for(var i=0,len=values.length;i<len;i++ )
                {
                    itemsHTML+="<li>"+values[i]+"</li>";
                 }
                ul.innerHTML=itemsHTML;//一次性添加

7.scrollIntoView()方法

                通过滚动浏览器窗口或某个元素内容,调用元素就可以出现在视口中。     

四.专有扩展

1.文档模式

2.children属性

                见上一章

3.contains()方法

                检查节点是否为另一个节点的后代

4.插入文本

                1)innerText属性
                    返回标签内的文本(不同浏览器空白符不同)
                    使用innerText设置值
                    div.innerText="hello world";
                2)outerText属性
                    除了作用范围扩大到了包含调用它的节点之外,outerText与innerText基本上没区别。
                    新文本节点替换旧文本节点

5.滚动(以下仅支持Safari和Chrome)

                scrollIntoViewIfNeeded():在元素不可见的情况下,滚动至该元素,设置为TRUE为让元素显示在视窗中央                                           
                 scrollByLines(lineCount):将元素滚动指定行高,参数可正可负
                scrollByPages(pageCount):将元素的内容滚动到指定页面高度,具体高度有元素的高度决定

dom扩展的更多相关文章

  1. 11. javacript高级程序设计-DOM扩展

    1. DOM扩展 1.1 选择符API l querySelector() 接收一个css选择符,返回与该模式匹配的第一个元素 l querySelectorAll() 接收一个css选择符,返回所有 ...

  2. javascript高级程序设计---DOM

    DOM是文档对象模型的简称,DOM的基本思想是把结构化文档解析成一系列的节点,由这些节点组成数装的DOM树,所有的这些节点和最终的树状结构都有统一的对外接口,达到使用编程语言操作文档的目的,DOM可以 ...

  3. 2020/6/11 JavaScript高级程序设计 DOM

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口).他描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分. 10.1 节点层次 DOM将任何HTML和XML ...

  4. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  5. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  6. javascript高级程序设计阅读笔记(一)

    javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...

  7. 《JavaScript高级程序设计》学习笔记

    系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端 ...

  8. 读书时间《JavaScript高级程序设计》一:基础篇

    第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一 ...

  9. JavaScript高级程序设计(读书笔记)(一)

    本笔记汇总了作者认为“JavaScript高级程序设计”这本书的前七章知识重点,仅供参考. 第一章 JavaScript简介 JavaScript发展简史: 1995年,JavaScript诞生 19 ...

  10. javascript 高级程序设计 一

    前言: 作为一个即将毕业.正在实习的大学生,我也默默的进入了开发者的行列.从一开始的c#编码狗到java程序员再到现在的JS开发者,我一直 希望自己可以在这个'万恶'的互联网时代走的更远.但是我还是一 ...

随机推荐

  1. 转载C#下RSA算法的实现(适用于支付宝和易宝支付)

    RSA算法代码: using System; using System.Collections.Generic; using System.Text; using System.IO; using S ...

  2. c#判断IP是否可以Ping通

    Ping pingSender = new Ping(); PingReply reply = pingSender.Send("127.0.0.1",120);//第一个参数为i ...

  3. Oracle逻辑备份与恢复

      1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMP ...

  4. Linux上如何执行java程序

    想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件 具体操作如下: 1.Windows上使用eclipse编译java工程,编译完成后导出 ...

  5. TEA(Tiny Encryption Algorithm)

    简介 TEA是一种简单高效的加解密算法,以速度快,实现简单著称.TEA算法每一次可以操作64-bit数据,采用128-bit作为key,算法采用迭代的形式,推荐的迭代轮数是64,最少32. 代码(默认 ...

  6. 实验一 DOS命令解释程序的编写

    一.目的和要求 1. 实验目的 (1)认识DOS: (2)掌握命令解释程序的原理: (3)掌握简单的DOS调用方法: (4)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程 ...

  7. Java系列笔记(2) - Java RTTI和反射机制

    目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...

  8. Thinkphp上传文件

    //1.文件上传Onethink使用$uploads->upload()方法会出现bug,使用$uploads->uploadOne()方法 $config = array( 'maxSi ...

  9. java常用基础知识点 (持续追加)

    作为一个Java编程人,会经常用上JDK中的大量的API类库,常用的有字符串操作.集合操作.文本操作.输入输出操作.以及网络操作, 常用的包: 1. java.lang Java程序的基础类,字符串, ...

  10. linux下查看tomcat和jdk版本号

    linux下查看tomcat和jdk版本号的命令: 这个需要进入到bin目录下面 ,执行"./version.sh"命令 [root@hncsweb bin]# ./version ...