问题:递归?
一、DOM
1、节点
- 节点:
<html>
<head>
<script type="text/javascript">
function demo()
{
var divObj = document.getElementById("divid");
// alert(divObj);
// alert(divObj.innerHTML);
divObj.style.backgroundColor = "red";
var name = divObj.nodeName;
var type = divObj.nodeType;
var value = divObj.nodeValue;
alert(name+"..."+type+"..."+value);
}
</script>
</head>
<body>
<input type="button" value="演示按钮" οnclick=demo() />
<div id="divid">
sssssssssss
</div>
</body>
</html> - 节点类型:
标签型节点:类型:1 - 文本型节点:类型:3
注释型节点:类型:8
document:类型:9 - 注意:标签之间存在空行时,会出现一个空白的文本节点,在获取节点时,一定要注意。
- 节点的关系:
父节点:一个节点只能有一个父节点。
子节点:一个节点可能有多个子节点。
兄弟节点(相邻节点):
获取父节点:node.parentNode
获取子节点:element.childNodes。返回值:NodeList对象,表示节点集合。
提示:可以使用 length 属性来确定子节点的数量,然后遍历。
function demo()
{
var divObj = document.getElementById("div1");
alert(divObj.childNodes.length);
for(var x = 0; x <= divObj.childNodes.length - 1; x++)
getNode(divObj.childNodes[x]);
}
function getNode(node)
{
alert("node:"+node.nodeName+" type:"+node.nodeType+" value:"+node.nodeValue);
}
获取兄弟节点:
1、获取上一个兄弟节点:node.previousSibling
2、获取下一个兄弟节点:node.nextSibling - 获取可以通过节点的层次关系完成。
- 也可以通过document对象完成:
getElementById:通过id属性值获取对应的节点对象。如果有对一个id值相同。获取到的是第一个id所属对象。尽量保证id唯一性。返回的是一个对象。
getElementByName:通过标签的name属性获取对象。返回的一堆对象。其实是一个对象数组。
element.getElementsByTagName(tagname):既没有id也没有name时,可以通过标签名来获取节点对象。返回的是一堆对象。其实是一个对象数组。大多容器型标签都具备该方法。 - document.all
- 按节点的层次关系,打印一下:
递归:
hasChildNodes 没看懂?
二、window
1、
- window
- window
|-- - document
html - navigator作为了解
- window:
history 有后退、前进。
location: