JavaScript DOM编程艺术学习笔记(三)

第三章 DOM

3.1 文档:DOM中的"D"
document(文档)

3.2 对象:DOM中"O"
JavaScript语言里的对象可以分为三种类型.

用户定义对象(user-defined object):由程序员自行创建的对象.

内建对象(native-object):内建在JavaScript语言里的对象,如Array、Math和Date等.

宿主对象(host object):由浏览器提供的对象.

3.3 模型:DOM中的"M"
model(模型)

3.4 节点
文档是由节点构成的集合.

3.4.1 元素节点

DOM的原子的元素节点(element node).如:<html>,<body>,<p>,<ul>等.

3.4.2 文本节点

在XHTML文档里,文本节点(text node)总是被包含在元素节点的内部.

3.4.3 属性节点

属性节点用来对元素做出更具体的描述.例如,几乎所有的元素都有一个title属性,利用这个属性对包含在元素里的东西做出准确的描述:

<p title = "a gentle reminder">Don't forget to buy this stuff.</p>
在DOM中,title="a gentle reminder"是一个属性节点(attribute node).

并非所有的元素都包含着属性,但所有的属性都被元素包含.

3.4.4 CSS

之前学过了,不做介绍了.

3.4.5 获取元素

1. getElementById

DOM提供了一个名为getElementById的方法,这个方法将返回一个与那个有着给定id属性的值得元素节点对应的对象.

它是document对象特有的函数.在脚本代码里,函数名的后面必须跟有一对圆括号,这对圆括号里包含着函数的参数.getElementById方法只有一个参数:你想获得的那个元素的id属性的值,这个id值必须放在单引号或双引号里.


document.getElementById(id)

//例:document.getElementById("purchases");

2. getElementByTagName

getElementByTagName方法返回一个对象数组,每个对象分别对应着文档里有着给定标签的一个元素 .类似于getElementById,这个方法也是只有一个参数的函数,它的参数是标签的名字:

document.getElementByTagName(tag)

//例:document.getElementByTagName("li");

它返回的是一个数组.

查看某份文档里总共有多少个元素节点,即把通配符(星号字符"*")作为参数.

alert(document.getElementByTagName("*").length);

3. getElementByClassName


document.getElementByClassName(class)

//例:document.getElementByClassName("sale");

要指定多个类名,只要在字符串参数中用空格分隔类名即可.类名的实际顺序不重要,就算元素还带有更多类名也没有关系.(p41).
   总结:

一份文档就是一颗节点树.

节点分为不同的类型:元素节点、属性节点和文本节点.

getElementById将返回一个对象,该对象对应着文档里的一个特定的元素节点.

getElementByTagName和getElementByClassName将返回一个对象数组,他们分别对应着文档里的一组特定的元素节点.

每个节点都是一个对象.


3.5 获取和设置属性
3.5.1 getAttribute

getAttribute是一个函数.它只有一个参数-----你打算查询的属性的名字:

object.getAttribute(attribute)
getAttribute方法不属于document对象,所以不能通过document对象调用.它只能通过元素节点对象调用.例:
var paras = document.getElementByTagName("p");
for (var i = 0; i < paras.length; i ++) {
  alert(paras[i].getAttribute("title"));
}
3.5.2 setAttribute

object.setAttribute(attribute,value)
例:
var shopping = document.getElementBuId("purchases");
shopping.setAttribute("title","a list of goods");

 

posted @ 2016-12-15 20:39  shenglong.yu  阅读(121)  评论(0编辑  收藏  举报