Node的属性介绍:
- nodeType:显示节点的类型
- nodeName:显示节点的名称
- nodeValue:显示节点的值
- attributes:获取一个属性节点
- firstChild:表示某一节点的第一个节点
- lastChild:表示某一节点的最后一个子节点
- childNodes:表示所在节点的所有子节点
- parentNode:表示所在节点的父节点
- nextSibling:紧挨着当前节点的下一个节点
- previousSibling:紧挨着当前节点的上一个节点
Node有各种各样的节点,我们先花一些时间认识他们,同时一并了解nodeType,nodeName和nodeValue属性:
节点的nodeType 值可能返回如下属性:
1-ELEMENT //元素节点
2-ATTRIBUTE //属性节点
3-TEXT //文本节点
4-CDATA
5-ENTITY REFERENCE
6-ENTITY
7-PI (processing instruction)
8-COMMENT
9-DOCUMENT
10-DOCUMENT TYPE
11-DOCUMENT FRAGMENT
12-NOTATION
名称:元素节点
◆nodeType:ELEMENT_NODE
◆nodeType值:1
◆nodeName:元素标记名
◆nodeValue:null
- <body>
- <div id = "t" ><span></span></div>
- </body>
- <script>
- var d = document.getElementById("t");
- document.write(d.nodeType);
- document.write(d.nodeName);
- document.write(d.nodeValue);
- //显示 1 DIV null
- </script>
名称:属性节点
◆nodeType:ATTRIBUTE_NODE
◆nodeType值:2
◆nodeName:属性名
◆nodeValue:属性值
- <body>
- <div id = "t" name="aaa"><span></span></div>
- </body>
- <script>
- var d = document.getElementById("t").getAttributeNode("name");
- document.write(d.nodeType);
- document.write(d.nodeName);
- document.write(d.nodeValue);
- //显示 2 name aaa
- </script>
名称:文本节点
◆nodeType:TEXT_NODE
◆nodeType值:3
◆nodeName:#text
◆nodeValue:文本内容
- <body>
- <div id = "t">bbb</div>
- </body>
- <script>
- var d = document.getElementById("t").firstChild;
- document.write(d.nodeType);
- document.write(d.nodeName);
- document.write(d.nodeValue);
- //显示 3 #text bbb
- </script>
名称:CDATA文本节点(XML中传递文本的格式)
◆nodeType:CDATA_SECTION_NODE
◆nodeType值:4
◆nodeName:#cdata-section
◆nodeValue:CDATA文本内容
attributes属性,直接获取一个属性节点,注意这里要使用[],保持IE和FF的兼容性。
- <body name="ddd">
- <div id = "t" name = "aaa"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t").attributes["name"];
- document.write(d.name);
- document.write(d.value);
- //显示 name aaa
- </script>
firstChild和lastChild属性,表示某一节点的第一个和最后一个子节点:
- <body>
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t");
- document.write(d.firstChild.innerHTML);
- document.write(d.lastChild.innerHTML);
- //显示 aaa ccc
- </script>
childNodes和parentNode属性,表示所在节点的所有子节点和所在节点的父节点,这里的childNodes注意是一个数组:
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t");
- document.write(d.childNodes[1].innerHTML);
- document.write(d.parentNode.getAttribute("name"));
- //显示 bbb ddd
- </script>
nextSibling和previousSibling属性,分别表示在parentNode的childNodes[]数组中,紧挨着当前节点的上一个和下一个节点:
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t").childNodes[1];
- document.write(d.nextSibling.innerHTML);
- document.write(d.previousSibling.innerHTML);
- //显示 ccc aaa
- </script>
-
Node的方法介绍:
◆hasChildNodes():判定一个节点是否有子节点
◆removeChild():去除一个节点
◆appendChild():添加一个节点
◆replaceChild():替换一个节点
◆insertBefore():指定节点位置插入一个节点
◆cloneNode():复制一个节点
◆normalize():(不知)
◆hasChildNodes()方法:判定一个节点是否有子节点,有返回true,没有返回false
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- <div id = "m"></div>
- </body>
- <script>
- alert(document.getElementById("t").hasChildNodes());
- alert(document.getElementById("m").hasChildNodes());
- // 第一个true,第二个false
- </script>
removeChild()方法:去除一个节点:
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t").firstChild;
- document.getElementById("t").removeChild(d);
- // <span>aaa</span>被去除
- </script>
appendChild()方法:添加一个节点,如果文档树中已经存在该节点,则将它删除,然后在新位置插入。
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var d = document.getElementById("t").firstChild;
- document.getElementById("t").appendChild(d);
- // <span>aaa</span>成了最后一个节点
- </script>
replaceChild()方法:从文档树中删除(并返回)指定的子节点,用另一个节点来替换它。
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var newd = document.createElement("span");
- newd.innerHTML = "eee";
- var oldd = document.getElementById("t").lastChild;
- document.getElementById("t").replaceChild(newd,oldd);
- // 最后一项成了 eee
- </script>
insertBefore()方法:在指定节点的前面插入一个节点,如果已经存在,则删除原来的,然后在新位置插入。
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
- </body>
- <script>
- var newd = document.createElement("span");
- newd.innerHTML = "eee";
- var where = document.getElementById("t").lastChild;
- document.getElementById("t").insertBefore(newd,where);
- // 在最后一项的前面多了一项 eee
- </script>
cloneNode()方法:复制一个节点,该方法有一个参数,true表示同时复制所有的子节点,false表示近复制当前节点。
- <body name="ddd">
- <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div><div id = "m"></div>
- </body>
- <script>
- var what = document.getElementById("t").cloneNode(false).innerHTML;
- document.getElementById("m").innerHTML = what;
- // 增加了一个aaabbbccc
- </script>
- 1.Node往往被翻译为节点,在一个对象(可以简单的理解为是HTML页面中),一个属性name="aaa"可以是一个节点,一个< div id="aaa">……< /div>也可以是一个节点,在< body>……< /body>中的,也是一个大大的节点。下面是一些有关Node的属性和方法,并没有包含部分不兼容IE和FF内容的讲解。
2.
3.Node的属性介绍:
4.
5.nodeType:显示节点的类型
6.nodeName:显示节点的名称
7.nodeValue:显示节点的值
8.attributes:获取一个属性节点
9.firstChild:表示某一节点的第一个节点
10.lastChild:表示某一节点的最后一个子节点
11.childNodes:表示所在节点的所有子节点
12.parentNode:表示所在节点的父节点
13.nextSibling:紧挨着当前节点的下一个节点
14.previousSibling:紧挨着当前节点的上一个节点
15.ownerDocument:(不知)
16.
17.Node有各种各样的节点,我们先花一些时间认识他们,同时一并了解nodeType,nodeName和nodeValue属性:
18.名称:元素节点
19.nodeType:ELEMENT_NODE
20.nodeType值:1
21.nodeName:元素标记名
22.nodeValue:null
23.
24.<body>
25.<div id = "t" ><span></span></div>
26.</body>
27.<script>
28.var d = document.getElementById("t");
29.document.write(d.nodeType);
30.document.write(d.nodeName);
31.document.write(d.nodeValue);
32.//显示 1 DIV null
33.</script>
34.名称:属性节点
35.nodeType:ATTRIBUTE_NODE
36.nodeType值:2
37.nodeName:属性名
38.nodeValue:属性值
39.
40.<body>
41.<div id = "t" name="aaa"><span></span></div>
42.</body>
43.<script>
44.var d = document.getElementById("t").getAttributeNode("name");
45.document.write(d.nodeType);
46.document.write(d.nodeName);
47.document.write(d.nodeValue);
48.//显示 2 name aaa
49.</script>
50.名称:文本节点
51.nodeType:TEXT_NODE
52.nodeType值:3
53.nodeName:#text
54.nodeValue:文本内容
55.
56.<body>
57.<div id = "t">bbb</div>
58.</body>
59.<script>
60.var d = document.getElementById("t").firstChild;
61.document.write(d.nodeType);
62.document.write(d.nodeName);
63.document.write(d.nodeValue);
64.//显示 3 #text bbb
65.</script>
66.名称:CDATA文本节点(XML中传递文本的格式)
67.nodeType:CDATA_SECTION_NODE
68.nodeType值:4
69.nodeName:#cdata-section
70.nodeValue:CDATA文本内容
71.
72.(作者省略8个属性,需技术补充)
73.
74.attributes属性,直接获取一个属性节点,注意这里要使用[],保持IE和FF的兼容性。
75.
76.<body name="ddd">
77.<div id = "t" name = "aaa"><span>aaa</span><span>bbb</span><span>ccc</span></div>
78.</body>
79.<script>
80.var d = document.getElementById("t").attributes["name"];
81.document.write(d.name);
82.document.write(d.value);
83.//显示 name aaa
84.</script>
85.firstChild和lastChild属性,表示某一节点的第一个和最后一个子节点:
86.
87.<body>
88.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
89.</body>
90.<script>
91.var d = document.getElementById("t");
92.document.write(d.firstChild.innerHTML);
93.document.write(d.lastChild.innerHTML);
94.//显示 aaa ccc
95.</script>
96.childNodes和parentNode属性,表示所在节点的所有子节点和所在节点的父节点,这里的childNodes注意是一个数组:
97.
98.<body name="ddd">
99.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
100.</body>
101.<script>
102.var d = document.getElementById("t");
103.document.write(d.childNodes[1].innerHTML);
104.document.write(d.parentNode.getAttribute("name"));
105.//显示 bbb ddd
106.</script>
107.nextSibling和previousSibling属性,分别表示在parentNode的childNodes[]数组中,紧挨着当前节点的上一个和下一个节点:
108.
109.<body name="ddd">
110.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
111.</body>
112.<script>
113.var d = document.getElementById("t").childNodes[1];
114.document.write(d.nextSibling.innerHTML);
115.document.write(d.previousSibling.innerHTML);
116.//显示 ccc aaa
117.</script>
118.ownerDocument属性(不知如何使用)
119.
120.Node的方法介绍:
121.
122.hasChildNodes():判定一个节点是否有子节点
123.removeChild():去除一个节点
124.appendChild():添加一个节点
125.replaceChild():替换一个节点
126.insertBefore():指定节点位置插入一个节点
127.cloneNode():复制一个节点
128.normalize():(不知)
129.
130.hasChildNodes()方法:判定一个节点是否有子节点,有返回true,没有返回false
131.
132.<body name="ddd">
133.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
134.<div id = "m"></div>
135.</body>
136.<script>
137.alert(document.getElementById("t").hasChildNodes());
138.alert(document.getElementById("m").hasChildNodes());
139.// 第一个true,第二个false
140.</script>
141.removeChild()方法:去除一个节点
142.
143.<body name="ddd">
144.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
145.</body>
146.<script>
147.var d = document.getElementById("t").firstChild;
148.document.getElementById("t").removeChild(d);
149.// <span>aaa</span>被去除
150.</script>
151.appendChild()方法:添加一个节点,如果文档树中已经存在该节点,则将它删除,然后在新位置插入。
152.
153.<body name="ddd">
154.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
155.</body>
156.<script>
157.var d = document.getElementById("t").firstChild;
158.document.getElementById("t").appendChild(d);
159.// <span>aaa</span>成了最后一个节点
160.</script>
161.replaceChild()方法:从文档树中删除(并返回)指定的子节点,用另一个节点来替换它。
162.
163.<body name="ddd">
164.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
165.</body>
166.<script>
167.var newd = document.createElement("span");
168.newd.innerHTML = "eee";
169.var oldd = document.getElementById("t").lastChild;
170.document.getElementById("t").replaceChild(newd,oldd);
171.// 最后一项成了 eee
172.</script>
173.insertBefore()方法:在指定节点的前面插入一个节点,如果已经存在,则删除原来的,然后在新位置插入
174.
175.<body name="ddd">
176.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div>
177.</body>
178.<script>
179.var newd = document.createElement("span");
180.newd.innerHTML = "eee";
181.var where = document.getElementById("t").lastChild;
182.document.getElementById("t").insertBefore(newd,where);
183.// 在最后一项的前面多了一项 eee
184.</script>
185.cloneNode()方法:复制一个节点,该方法有一个参数,true表示同时复制所有的子节点,false表示近复制当前节点
186.
187.<body name="ddd">
188.<div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div><div id = "m"></div>
189.</body>
190.<script>
191.var what = document.getElementById("t").cloneNode(false).innerHTML;
192.document.getElementById("m").innerHTML = what;
193.// 增加了一个aaabbbccc
194.</script>
其它部分
top:分割窗口最高层次的浏览器窗口。采用如下方式进行访问:top.frames['sub_frm'].*********
parent:当前分割窗口的父窗口。采用如下方式访问:parent.document.*********
opener:指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
iframe: 在一个页面含有某个iframe,其id="iframeA" name="IframeA",此时使用document.getElementById("IframeA")取到的是iframe标签对象,通过该对 象可以获取iframe的各个属性,例如src、frameborder、style等等,但是不能获取到iframe所包含的子页面的各个对象。如果使 用document.frames("IframeA")取到的是iframe组件对象,通过该对象可以获取到iframe所包含的页面的子页面的各个对 象,例如子页面的window对象,但是不能获得iframe标签得各个属性,例如上面说到的src等等。请参看如下类似代码:
1.html
<script>
function check(){
var obj1=document.getElementById("myframe");
alert(obj1.src);
//alert(obj1.window.document.myform.username.value);//Error
var obj2=document.frames("myframe");
alert(obj2.window.document.myform.username.value);
//alert(obj2.src);//Error
}
</script>
<body οnlοad="check()">
<iframe id="myframe" name="myframe" src="http://dearhappyfish.blog.163.com/blog/2.html" frameborder="3" style="width:300;height:200;border-width:1;border-color:red;border-style:solid"></iframe>
</body>
2.html
<body>
<form name="myform">
用户名:<input type="text" name="username" value="test" />
</form>
</body>