第十一章 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. ThinkPHP 3.2.3(三)架构之URL模式

    一.标准URL格式 http://serverName/index.php/模块/控制器/操作   二.URL大小写 在/ThinkPHP/Conf/convention.php文件里有URL大小写的 ...

  2. CentOS_7.2安装Redis_3.0

    一.安装依赖包和开发工具: yum install vim vim-enhanced wget zip unzip telnet ntsysv compat* apr* nasm* gcc gcc* ...

  3. Python面向对象高级之类的特殊成员

    上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段.方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用.无论人或事物往往都有不按套路出 ...

  4. YCSB-压测

    安装 wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.rpm #注意此处到官网下载后上传,需要 ...

  5. MySQL 5.6查询优化器新特性的“BUG” eq_range_index_dive_limit

    本文转自 http://www.imysql.cn 最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下. SQL本身不复杂,表结构.索引也比较简单,不过个别字段存在于多个索引中. CREATE ...

  6. ADO.NET学习

    ADO.NET重要的类 在.NET访问MySql数据库时的几点经验! string connstr=Setting.Instance().GetConnectionString("MySql ...

  7. bzoj3504: [Cqoi2014]危桥

    题意:给出一个图,有的边可以无限走,有的只能走两次(从一头到另一头为一次),给定两个起点以及对应的终点以及对应要走几个来回,求判断是否能完成. 先来一个NAIVE的建图:直接限制边建为容量1,无限制为 ...

  8. 【 2013 Multi-University Training Contest 8 】

    HDU 4678 Mine 对于每个空白区域,求SG值. 最后异或起来等于0,先手必败. #pragma comment(linker,"/STACK:102400000,102400000 ...

  9. <java基础学习>RE 基础语法

    public class MyFirstJavaProgram{ public static void main(String[] args ){ System.out.println("H ...

  10. imx6 gpio irq

    /***************************************************************** * gpio irq * * 一直以来都没了解过gpio的irq, ...