第十一章 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. Codeforces Round #373 (Div. 2) E. Sasha and Array

    题目链接 分析:矩阵快速幂+线段树 斐波那契数列的计算是矩阵快速幂的模板题,这个也没什么很多好解释的,学了矩阵快速幂应该就知道的东西= =这道题比较巧妙的在于需要用线段树来维护矩阵,达到快速查询区间斐 ...

  2. Python笔记总结week3

    Set集合: 无序,不重复的序列 a. 创建 se = {"123,"456" } print(type(se)) #创建集合方式 s1 = se = {"12 ...

  3. Mysql主数据库+备份数据库部署教程

    转:http://www.111cn.net/database/mysql/76450.htm 本文我们来讲讲Mysql主备如何部署,这里说的主是指Mysql主数据库,备是从数据库,备可以是多个,也可 ...

  4. javascript 中继承实现方式归纳

    转载自:http://sentsin.com/web/1109.html 不同于基于类的编程语言,如 C++ 和 Java,javascript 中的继承方式是基于原型的.同时由于 javascrip ...

  5. URL优化之IIS7如何开启伪静态

    iis7跟IIS6开启伪静态重写的方式不一样,iis6是在网站属性里面的ISAPI筛选器里面添加,但是iis7添加伪静态重写,需要下载一个url重写插件. II7/7.5用的是web.config配置 ...

  6. [css]水平垂直居中的方法

    1.top:cale(50% - 2rem); left:cale(50% - 2rem);

  7. hadoop输入分片计算(Map Task个数的确定)

    作业从JobClient端的submitJobInternal()方法提交作业的同时,调用InputFormat接口的getSplits()方法来创建split.默认是使用InputFormat的子类 ...

  8. My Game --文件读取数据

    My Game --线段数据 中说到背景的绘制由贝赛尔曲线生成线段,用 DrawNode 画多边形,同时一张背景有两座山,一座山有两条以上贝赛尔曲线保存,用了嵌套的数据类:Bezier,LineLay ...

  9. Siverlight 导出Excel (经测试通过 Vs2010 ,silverlight5 )

    网上搜了下,很多代码都有各种问题,自己抽时间整理了一下这个导出 using System; using System.Net; using System.Windows; using System.W ...

  10. Bestcoder Round 47 && 48

    1.Senior's Array(hdu 5280) 题目大意:给出大小为N的数组和P,求将数组中的某个元素替换为P后的最大连续子段和.N<=1000 题解: 1.送分题,比赛的时候只想到枚举替 ...