document

document对象为文档节点,位于全部节点的顶端html

nodeType为9node

nodeName为“#document”chrome

nodeValue为null浏览器

没有父节点app

子节点有元素节点,注释节点,DOCTYPE节点等等dom

最经常使用的是元素节点,document的子节点只有一个元素节点,就是html节点编码

document的一些经常使用属性和方法:spa

属性:orm

document.documentElement:直接得到一个html文档的<html>标签htm

document.title:获取<title>标签,能够得到内容和修改内容,document.title直接对应页面选项卡上的文字

document.body:得到<body>标签

document.head:获取<head>标签 这个只适用于safiri和chrome浏览器,要慎用

document.URL:获取页面整个的URL地址

document.domain:获取页面的域名

document.referrer:获取跳转到当前页面的URL地址

document.readyState;返回loading(页面正在加载)或者complete(页面加载完毕)

document.charset:能够获得页面的编码方法,同时也能够对其赋值,改变页面的编码方式

例:当前页面的地址为http://www.baidu.com/a/index.html,上一个页面的地址为http://www.souhu.com/a/index.htm,在baidu是从souhu跳转过来的

因此document.URL为http://www.baidu.com/a/index.html,

因此document.domain为www.baidu.com,

因此document.referrer为http://www.souhu.com/a/index.html。

其中能够对document.domain进行修改,其余两个不能够修改,document.domain能够修改成baidu.com,将其改为松散的域名,可是只能这样改,

不能够改为其余页面的域名。

document.domain的做用:有两个页面,一个域名为p2p.baidu.com 另外一个为www.baidu.com,两者之间的js是不能够进行互相取值的,可是若是将两个js文件

的document.domain都改成baidu.com,两者之间就能够互相访问彼此的js对象了。

注:只要讲document.domain改成松散的之后,就不能够再改成紧绷的了,若是document.domain改成了baidu.com就不能够再改成www.baidu.com了。

方法:

getElementById:

document.getElementById("某个id名") 获取该id所对应的标签,若是有多个id,只取第一个,这个方法通常只用document调用

getElementsByTagName

document.getElementsByTagName("某个标签的名")  若是是用document调用这个方法,则获取的是全部这个标签名的元素,返回一个HTMLCollection对象

至关于一个NodeList对象。

getElementsByTagName也能够在某个元素上调用,例如,如今获取了一个元素element

element.getElementsByTagName("div")就是在element这个元素的全部后代元素中进行搜索。

var a=document.getElementsByTagName("div")

var a=document.getElementsByTagName("div")

a.length:获取所得到的元素的个数

a[i]/a.item(i):获取第i 个元素

 

getElementsByClassName

这个方法一样能够在元素上调用,也能够用document调用,返回一个NodeList类型,存储的为具备该类名的标签

在元素上调用的时候是得到该元素的后代中具备这个类名的元素

var a=document.getElementsByClassName("aaa")

a.length:获取所得到的元素的个数

a[i]/a.item(i):获取第i 个元素

同时能够搜索具备几个类的元素

例如document.getElementsByClassName("aaa bbb ccc")

getElementsByName

该方法会返回name为某个具体值的元素,为HTMLCollection类型,至关于一个NodeList类型

只能用document调用

var a=document.getElementsByName("aaa")

a.length:name为aaa的元素个数

a[i]/a.item(i):第i 个元素

querySelector

这个方法能够有document,html中的各类元素,和documentFragment调用,其中documentFragment是DOM中的一个节点,有文章做专门介绍

document在全局查找,在元素上调用会在元素的后代中查找,在documentFragment上调用,会在documentFragment的内容中进行查找

传入的参数能够是任何的CSS选择器

例如

document.querySelector(".abc") 查找类名为abc的元素

document.querySelector("p a")查找全部是p标签的后代的a元素

这个方法只返回查找到的第一个元素

querySelectorAll

与querySelector同样,可是会找到全部的元素,返回NodeList类型

有item()  [] length属性

以上全部的方法得到到的元素都有一个classList属性

classList属性中有add,remove,traggle,contains,item方法,有length属性

a[0].classList.add("某个类名"):能够在该标签中加入这个类

a[0].classList.remove("某个类名"):能够在该标签中加入这个类

a[0].classList.toggle("某个类名"):能够判断标签中是否有这个类,若是有就删除,若是没有,就添加

a[0].classList.contains("某个类名"):判断标签中是否有这个类,返回true活着false

a[0].classList.length:获得这个元素中类的个数

a[0].classList.item(i)/a[0].classList[i]:获取第i个类

用这个属性,就能够很方便的对元素的类进行操做

document还有一些简单的操做

document.anchors 获得全部带有name的<a>标签

document.links 获得全部带有href的<a>标签

document.images 获得全部的<img>标签

document.forms 获得全部的<form>标签

这是个方法都返回HTMLCollection对象,至关于NodeList对象 有length,item() []属性和方法

其实这四个方法就是上面方法的一些简写,本质都是同样的

write() writeln() open() close()方法

document.write():接收一个字符串参数,可使字符串,js里的各类方法,或html标签,script标签,将执行的结果输出到页面中,

若是有</script>要将其转义为<\/script>,不然识别到</script>时会使结束js的加载。

若是在整个页面都加载完再调用这个方法的话,就会把以前的页面覆盖,若是在页面加载过程当中调用,则不会覆盖。

document.writeln() 与document.write()做用相同,不过最后会自动添加一个换行符

open() close() 会分别打开和关闭网页的输出流。若是在页面加载过程当中调用document.write()则不用调用这两个方法

若是在页面加载结束调用document.write(),则会自动调用document.open()擦出以前页面的内容,而后执行完document.write()后自动调用

document.close()关闭输入流,不用显示调用这两个方法。

createElement()方法

用document.createDocument()方法,能够建立元素,括号里为元素名

例如var aaa=document.createDocument("div")

此时则建立了一个div元素,存储在aaa中,能够为其添加属性

div.align="center" 等等

能够用appendChild等方法将aaa即div元素插入到html文档中

还有另外一种建立元素的方法

var aaa=document.createDocument("<div align=\"center\"></div>")

即直接传入html标签

createAttribute()方法

建立属性节点,在Element与Attr节点那一章中具体说明

相关文章
相关标签/搜索