接着上篇,这篇主要介绍document对象,document在浏览器中表示整个HTML页面,document对象是window对象的一个方法,因此可以省略window对象。
下面介绍document对象的属性和方法:(学习javascript思想:一切皆对象)
1、nodeType、nodeName、nodeValue和parentNode
以上的4个属性分别是:9、#document、null、null
2、documentElment和body
这个指向页面的html节点,和document.childNodes[0] 或 document.firstChild 一样
而后者则指向body。
3、title
可以通过document.title来取得标题,同样也可以通过document.title = “xxx”来设置标题
4、url、domain 和 referrer
第一个URL和location.href相同
第二个domain大部分是用来和iframe内跨子域的调用方法或全局变量和利用它来AJAX跨子域操作,它可以突破javascript的同源策略。
第三个大部分是用在来源统计上的,用来捕获客户端是通过哪个网站跳转过来的,可以方便的抓取客户端的来源,当然可能是伪造的。
5、getElementById(id)
大名鼎鼎的方法,不多解释,只提三句,第一这是获取节点最快的方法,第二注意大小写,第三请保持获取的ID在页面上的唯一性,包括其他元素的name属性也不要与ID相同!
6、getElementsByTagName(node_name)
在没有联想的editPlus里我一直少打一个S,真的郁闷,这个方法返回一个数组,jquery很多选择器都依靠这个方法,所以在使用jquery选择器时还是推荐使用$(“#id”)这样来做,最快!另外返回的这个数组有一个常用的方法:
namedItem(name)或[name];用来筛选name是参数值的第一个节点。
如果node_name参数为“*”,则表示查找页面上的所有元素。
6、getElementsByName(name)
同上,只不过这里查抄name。
7、anchors、applets、forms、images、links、embeds
分别表示:1
2
3
4
5
6anchors 文档中带有name特性的a元素
applets 文档中所有applet元素
forms 文档中所有forms元素
images 文档中所有images元素
links 文档中所有带有href的a元素
embeds 文档中所有带有embed元素
8、write(string)和writeln(string)
输出参数内的字符串,如果string是HTML元素会解析。唯一需要注意的是输出,需要将其拆开。
9、implementation
浏览器的DOM支持检测,他有很多属性,可以自己去百度一下,包括支持CSS什么版本,event事件是什么模型等等。
他支持一个方法hasFeature(“css2”, “2.0”);用来检测浏览器是否支持css2.0.
11、cookie
可以获得或者添加cookie操作
11、createElement(Tag_name)
创建一个节点,需要appendChild()和insertBefore() 这2个方法配合使用。
12、createEvent(eventType)
创建一个新的Event对象,只能接受event对象模块名
13、createDocumentFragment()
创建一个新的document fragment文档节点,这个节点具有普通节点的属性和方法,可以利用这个文档节点来作为仓库,存放不会立即放入HTML页面的节点,等处理完了再一起放入HTML页面,这样可以避免每次放入反复渲染,减少开销。例如:1
2
3var f = document.createDocumentFragment();
f.appendChild(new_node); //反复多次
document.body.appendChild(f); //最后将这个仓库放入HTML页面中,只进行一次渲染
14、scrollIntoView(bool)
使当前element.scroolIntoView()可见,可以用其他方法代替
15、一些不常用的属性和方法:
1 | document.compatMode:用来判断当前浏览器采用的渲染方式。 |