第十五章 脚本化文档
1、文档对象模型DOM是表示和操作HTML和XML文档内容的基础API。
2、Document、Element、Text是Node的子类。
3、查询文档的一个或多个元素有如下方法:用指定的id属性、用指定的name属性、用指定的标签名字、用指定的css类、匹配指定的css选择器。
4、HTML的name属性最初打算为表单元素分配名字,在表单数据提交到服务器时使用该属性的值。
5、name属性只在少数HTML元素中有效,包括表单、表单元素、iframe和img元素。
6、getElementsByName()只针对HTML文档可用,返回一个NodeList对象。行为类似包含若干个Element对象的只读数组。
7、为form、img、iframe、applet、embed、object元素设置name属性,即在Document对象中创建以此name属性值为名字的属性。
8、如果给定的名字只有一个元素,自动创建的文档属性对应的该值是元素本身,如果有多个元素,该文档属性的值是一个NodeList对象,它表现为一个包含这些元素的数组。为若干命名iframe元素所创建的文档属性比较特殊:它们指代这些框架的Window对象而不是Element对象。
9、HTMLDocument类定义一些快捷属性来访问各种各样的节点,比如images、forms、links指向img、form、a(带有href属性的)。HTMLCollection对象。
10、Document类的documentElement属性指代文档的根元素。在HTML文档中,它总是指代html元素。
11、Document方法querySelectorAll(),接受包含一个CSS选择器的字符串参数,返回一个表示文档中匹配选择器的所有元素的NodeList对象。这个NodeList对象不是实时的。
12、querySelector()返回第一个匹配的元素。
13、Node的属性nodeType表示该节点的类型。9代表Document节点,1代表Element节点,3代表Text节点,8代表Comment节点,11代表DocumentFragment节点。
14、Element对象的children属性,类似ChildNodes,也是一个NodeList对象,但不同的是children列表只包含Element对象。
15、Text和Comment节点没有children属性,意味着Node.parentNode属性不能返回Text或Comment节点。
16、任何HTML元素的style属性值是CSSStyleDeclaration对象,而不是字符串。
17、Element类型还定义了getAttribute()和setAttribute()方法来查询和设置非标准的HTML属性。hasAttribute()和removeAttribute()它们用来检测命名属性是否存在和完全删除属性。
18、HTML5文档中,任意以data-为前缀的小写的属性名字都是合法的。HTML5还在Element对象上定义了dataset属性,指代一个对象,它的各个属性对应于去掉前缀的data-属性。
19、dataset属性是data-属性的实时、双向接口。设置或删除dataset的一个属性就等于移除对应元素的data-属性。
20、对于Element对象,attributes属性是只读的类数组对象,他代表元素的所有属性,类似NodeList。