JavaScript语言里的对象可以分为三类:用户定义对象(user-defined Object)、内建对象(native Object)、宿主对象(host Object)。
宿主对象中window对象对应浏览器窗口本身,这个对象的属性和方法统称为BOM。
当创建一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生,它把编写的网页文档转换为一个文档对象。DOM(Document Object Model)代表加载到浏览器窗口的当前网页,浏览器提供了网页的地图(或者说模型),而我们可以通过JavaScript来读取这张地图。DOM把一份文档标识为一棵树,并用parent, child, sibling来标识家族成员之间的关系。
document是由节点(node)构成的,主要包括三种节点:元素节点(element node),文本节点(text node),属性节点(attribute node)
获取元素的三种DOM方法:
getElementById,getElementByTagName, getElementByClassName
代码示例:
var shopping = document.getElementById('purchases‘);
var items = shopping.getElementByTagName(‘’); // 找到id为‘purchase’的所有元素
var shopping = document.getElementById('purchases‘);
var sales = shopping.getElementByClassName(sale‘’); // 找到id为‘purchase’,class为sale的所有元素
setAttribute()方法可以用来创建节点属性并赋值,如果节点属性原来有值,则覆盖原来的值,但是html中对应的属性不会被改变。由此可以看到DOM的工作原理:先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容,这正是DOM的真正威力:对页面内容进行刷新却不需要在浏览器里刷新页面。