1.Document与Element和TEXT是Node的子类。
Document:树形的根部节点
Element:HTML元素的节点
TEXT:文本节点
 
>>HtmlElement与HtmlDocument
a:HtmlElement对象表示HTML中的一个个元素。
b:HtmlDocument对象表示 HTML 文档树的根。HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法。
 
>>HTML的DOM对象
a:DOM Event:Event 对象代表事件的状态。http://www.w3school.com.cn/jsref/dom_obj_event.asp
b:DOM Attribute:Attr 对象表示 HTML 属性。http://www.w3school.com.cn/jsref/dom_obj_attributes.asp
c:DOM Element:Element 对象表示 HTML 元素,Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点。http://www.w3school.com.cn/jsref/dom_obj_all.asp
d:DOM Document:每个载入浏览器的 HTML 文档都会成为 Document 对象。Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。http://www.w3school.com.cn/jsref/dom_obj_document.asp
 
>>#log span 与 #log>span的区别?
 <div id="log">
<span>Span1</span>
<span>Span2</span>
<span>Span3</span>
<div>
<span>Span4</span>
<span>Span5</span>
</div>
</div>

#log span的效果:

#log>span的效果:

扩展:CSS选择器 < ~ +

 
2.CSS选择器
与CSS选择器的标准化一起的另外一个称做"选择器API"的W3C标准定义了获取匹配一个给定选择器的元素的JavaScript方法。该API的关键是Document方法querySelectorAll()。它接收包含一个CSS选择器的字符串参数,返回一个表示文档中匹配选择器的所有元素的NodeList对象。
querySelectorAll()返回的NodeList对象并不是实时的:它包含在调用时刻选择器所匹配的元素,不包括后续的通过JavaScript更改文档的匹配元素。
querySelectorAll()强大到即使在没有其的原生支持的浏览器中依旧可以使用CSS选择器。它是一种终极的选取方法技术。
基于jQuery的Web应用程序使用一个轻便的,跨浏览器的和querySelectorAll()等效的方法,命名为$().
jQuery的CSS选择器匹配代码已经作为一个独立的标准库提出来并发布了,命名为Sizzle。
 
3.HTML属性作为Element的属性
表示HTML文档元素的HTMLElement对象定义了读写属性,他们映射了元素的HTML属性。
例如:
var image=document.getElementById("my_image");
var imgurl=image.src;
可以使用<img>元素的HTMLElement对象的src属性.
 
 
4.数据集属性
有时候在HTML元素上绑定一些额外的信息。HTML5提供看一种方法。
任意一”data-*“为前缀的小写的属性名字都是合法的。
 
5.Web浏览器很擅长解析HTML,通常设置innerHTML效率非常高。但是:对innerHTML属性使用”+=“操作符重复追加文本时效率低下,因为它既要序列化又要解析。
插入节点方法:appendChild()与insertBefore()的异同?
 
6.视口坐标与文档坐标
视口坐标:指的是显式文档内容的那一部分(也即我们在浏览器中能看到的那部分区域),不包括浏览器的外壳元素,比如菜单栏,工具条等。
文档坐标:指的是包含整个页面的整个部分(也即我们在浏览器中能看的那部分区域以及需要依靠滚动条来滚动查看的区域)。
 
该书中提供了几个实用的方法:
a:查询窗口滚动条的位置
//查询窗口滚动条的位置
functon getScrollOffsets(w){
w = w || window;
var sLeft,sTop;
if(w.pageXOffset != null) {
sLeft = w.pageXOffset;
sTop = w.pageYOffset;
return {x:sLeft,y:sTop};
}
 
b:查询窗口的视口尺寸

//查询窗口的视口尺寸
function getViewportSize(w){
  w = w || window;
  var cWidth,cHeight;
  if(w.innerWidth != null){
    cWidth = w.innerWidht;
    cHeight = w.innerHeight;
    return {w:cWidth,h:w.cHeight};
  }
  if(document.compatMode == "CSS1Compat"){
    cWidth = document.documentElement.clientWidth;
    cHeight = doument.documentElement.clientHeight;
    return {w:cWidth,h:w.cHeight};
  }else if(document.compatMode == "BackCompat"){
    cWidth = document.body.clientWidth;
    cHeight = doument.body.clientHeight;
    return {w:cWidth,h:w.cHeight};
  }
}
 
7.查询元素的几何尺寸
getBoundingClientRect()方法
 
需要注意的是:getBoundingClientRect这个方法不同于getElementByTagName()这样的DOM方法返回的结果是实时的,但是getBoundingClientRect却不是,它类似于一种静态快照。用户滚动的时候,并不会去实时更新。
 
getBoundingClientRect()与getClientRects()的区别?
 
8.判断元素在某点
elementFromPoint()能够用来判断判定视口中的指定位置上有什么元素。
传递X与Y坐标(使用视口或窗口坐标而不是文档坐标)
它有一个取代者,那就是target属性。
 
9.滚动
Window的scrollBy()与scroll()和scrollTo()类似。
只是scrollBy的参数是相对的,并在当前滚动条的偏移量上增加。
如:
//每200毫秒向下滚动10个像素
javascript:void setInterval(function(){ scrillBy(0,10)}, 200);
scrollIntoView()的使用?
 
offsetWidth()
offsetHeight()
offsetLeft()
offsetTop()
offsetParent()
 
clientWidth()
clientHeight()
clientLeft()
clientTop()
 
scrollWidth()
scrollHeight()
scrollLeft()
scrollTop()
 
Client他就是Web浏览器客户端-专指它定义的窗口或视口。
 
 
10.HTML表单
服务器端程序是基于表单提交动作的
客户端程序是基于事件的
JavaScript的From。
 
 
 

JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)的更多相关文章

  1. Javascript学习8 - 脚本化文档(Document对象)

    原文:Javascript学习8 - 脚本化文档(Document对象) 每个Web浏览器窗口(或帧)显示一个HTML文档,表示这个窗口的Window对象有一个document属性,它引用了一个Doc ...

  2. JavaScript权威设计--CSS(简要学习笔记十六)

    1.Document的一些特殊属性 document.lastModified document.URL document.title document.referrer document.domai ...

  3. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  4. JavaScript权威设计--JavaScript函数(简要学习笔记十)

    1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"lik ...

  5. JavaScript权威指南--脚本化文档

    知识要点 脚本化web页面内容是javascript的核心目标. 第13章和14章解释了每一个web浏览器窗口.标签也和框架由一个window对象所示.每个window对象有一个document对象, ...

  6. JavaScript 客户端JavaScript之 脚本化文档

    客户端JavaScript的存在把静态HTML转变为交互式的Web应用程序,脚本化Web页面的内容正是JavaScript存在的理由.   一个文档对象模型或者说DOM就是一个API,它定义了如何访问 ...

  7. javascript脚本化文档

    1.getElememtById /** * 获取指定id的的元素数组 */ function getElements(/*ids...*/) { var elements = {}; for(var ...

  8. JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)

    1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向 ...

  9. JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)

    1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...

随机推荐

  1. 【.net 深呼吸】细说CodeDom(1):结构大观

    CodeDom 是啥东东?Html Dom听过吧,XML Dom听过吧.DOM一般可翻译为 文档对象模型,那 Code + DOM呢,自然是指代码文档模型了.如果你从来没接触过 CodeDom,你大概 ...

  2. ABP教程-打造一个《电话簿项目》-目录-MPA版本-基于ABP1.13版本

    此系列文章会进行不定期的更新,应该会有6章左右. 感兴趣的朋友可以跟着看看,本教程适合已经看过ABP的文档但是又无从下手的小伙伴们. 初衷: 发布系列教程的原因是发现ABP在园子火了很久,但是发现还是 ...

  3. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  4. Vue-Router 页面正在加载特效

    Vue-Router 页面正在加载特效 如果你在使用 Vue.js 和 Vue-Router 开发单页面应用.因为每个页面都是一个 Vue 组件,你需要从服务器端请求数据,然后再让 Vue 引擎来渲染 ...

  5. notepad++设置默认打开txt文件失效的解决方法

    1.系统环境 win10企业版,64位系统 2.初步设置 设置txt默认为notepad++打开,菜单:设置->首选项->文件关联 选择对应的文件扩展,点击"关闭"按钮 ...

  6. VSCode添加Sciter脚本Tiscript高亮支持

    Sciter中的Tiscript脚本不是标准的Javascript,是对Javascript的扩展.所以在常用的编辑器和IDE上对于高亮的支持很不好. 不过在Sciter论坛中找到了在VSCode上的 ...

  7. 基于Composer Player 模型加载和相关属性设置

    主要是基于达索软件Composer Player.的基础上做些二次开发. public class ComposerToolBarSetting { public bool AntiAliasingO ...

  8. python 数据类型---文件二

    1.打印进度条 import sys,time for i in range(20): sys.stdout.write("#") sys.stdout.flush() #不等缓冲 ...

  9. kali linux下的arp攻击

    这是我第一篇博客,写的不好请谅解 ____________________________(分割线)_______________________________ 在kali linux系统下自带工具 ...

  10. 《图解HTTP》读书笔记

    目前国内讲解HTTP协议的书是在太少了,记忆中有两本被誉为经典的书<HTTP权威指南>与<TCP/IP详解,卷1>,但内容晦涩难懂,学习难度较大.其实,HTTP协议并不复杂,理 ...