本文的问题在国外的一个网站得到了答案http://stackoverflow.com/questions/11235409/no-getelementbyid-for-body
document.body.getElementsByTagName()
document.body.getElementsByClassName()
document.getElementById
document.getElementsByName
解释如下:
你可以有多个元素相同的类名所以缩小搜索开始与一个特定的节点有意义。
它没有意义,因为它与id应该是唯一的。
你只能有一个id在文档,这为什么是一个方法的文档getElementById。
文档还有一个方法就是getElementsByName 返回的是returns an HTMLCollection
但是document.body.getElementsByName为什么没有呢?
是因为:
当你使用document.getElementsByName方法得到指定名称下,文档中的所有元素的NAME属性指定或ID属性值返回。
元素,同时支持名称属性和ID属性包含在返回的集合getElementsByName方法得到指定名称下的,但元素名称expando并不包含在集合;因此,这种方法不能用于检索自定义标记的名字。
这就不难理解了。