0级Dom的产生来自来于Netscape2,当Netscape2加入JavaScript时为了方便程序修改HTML中的某些元素而提供的一种实现方式。这种方式虽然并不是W3C的标准,但却是事实标准。DOM 0能够在其乎所有浏览器中得到支持。
形式
document.myForm
Dom 0的使用很简单,它把元素直接挂在了document之下。我们可以如同访问document的属性一样去访问一个HTML元素的对象。当然并不是所有的东西都能访问到。
产生
当文件完载完毕之后,浏览器会自动的将HTML中的某些元素加入到document对象中来,当然是以对象列表 的形式。(注意:这里是一个对象列明,而非数组。)这样我们就可以通过元素的序列或name属性找到我们所需要的元素,如:document.form[0] document.images['myImg']
列表
那么会有哪些元素会被自动加入到document中去呢,请看下面这个列表
document.images[]
——HTML文档中所有<img>标签元素列表。
document.forms[]
——HTML文档中所有表单元素列表。
document.forms[].elements[]
——HTML文档中所有表单元素中的可被提交的元素。哪些元素能被提交?请看我下次关于Form的博客。
document.links[]
——HTML文档中所有<a>标签并有href属性的元素。a标签分为两种带有 href属性(链接)的和带有name属性(锚点)的,当然也有既带有href属性也带有name属性的。
document.anchors[]
——HTML文档中所有<a>标签并带有name属性元素。
使用
HTML文档在加载完毕之后就会生产这些列表,我们就可以在JS中去访问它们了。访问的形式有两种:一种是通过序列即1 2 3等这样的数字,还有一种是通过name属性。比如我们要修改文档中name为myImg的图片地址,我们就可以这样去做:
document.images['myImg'].src = '/myImg.jpg'
如果这个元素是文档的自上而下数的第一个,我们也可以这样去访问它:
document.images[0].src='/myImg.jpg'
两者使用上没有区别。对于表单中的元素,我们也可以用同样形去方问。如我们要访问name为myForm表单中,name属性为myInp的一个input元素,我们就可以这样:
var v = document.forms['myForm'].elements['input'].value
Dom0实际上还提供了另外一种访问方式,就是document.name方式。比如我要获取name属性为myElement的元素,我们就可以这样:
document.myElement