第十一章 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. [转载] 百度上传&下载脚本

    下载百度网盘中的文件,最简单的办法是使用wget命令.找到百度网盘文件,点击下载,然后找到相应的下载地址,复制链接地址即可.但这种方法有一个bug,因为百度云网盘访问文件的链接地址是动态的,当文件比较 ...

  2. IOS跳转到设置特定项

    App如何跳转到系统Settings 标签: IOS开发App转到Settings 2015-12-04 15:56 550人阅读 评论(1) 收藏 举报  分类: IOS开发(21)  版权声明:本 ...

  3. IOS9 Swift

    Swift 2.0发布:即将开源,支持Linux [日期:2015-06-09] 来源:infoq  作者:Linux [字体:大 中 小]     在6月9日凌晨举行的WWDC 2015全球开发者大 ...

  4. Proxy Pattern(Java动态代理和cglib的实现)

    代理模式:给某一个对象提供代理对象,由代理对象控制具体对象的引用. 代理,指的就是一个角色对表另一个角色采取行动,就生活中,一个红酒厂商,是不会直接把红酒零销给客户的,都是通过代理完成他的销售业务.而 ...

  5. Flapper Bird的学习笔记(一)

    因为我有一个超屌的梦想,所以就绝不做孬种的追梦人! 本文主要目的是为了实现Flapper Bird的功能. 另外一个目的是为了加强对Unity引擎的理解和掌握. 新人一枚,如若看到是我幸运.若是发现错 ...

  6. JSFuck奇葩的js编码

    以前对黑客很崇拜,黑客的世界无比精彩.最近为了炫耀,想起了这段特殊的代码. [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[ ...

  7. Xcode快捷键

    1. 文件 CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + S: 保存 CMD + SHIFT + S: 另存为 CMD + W: 关闭窗口 C ...

  8. java 排序

    class Employee { private String name; private String id; private String salary; public static void m ...

  9. codeforces problem 140E New Year Garland

    排列组合题 题意 用m种颜色的彩球装点n层的圣诞树.圣诞树的第i层恰由l[i]个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同.求有多少种装点方案,答案对p取模. 只 ...

  10. 关于win10系统自带浏览器IE11的JQuery使用问题

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="utf-8&quo ...