先介绍一下节点类型都有哪些:
节点类型 | 属性nodeType返回值 |
元素节点 | 1 |
属性节点 | 2 |
文本节点 | 3 |
注释节点(comment) | 8 |
document | 9 |
DocumentFragment | 11 |
这种遍历可以遍历 文本类节点、注释节点、元素节点等。 任何浏览器都好使。
var strong = document.getElementsByTagName('strong')[0];
console.log(strong.parentNode);
//strong.parentNodes ————div
//strong.parentNode.parentNode ————body
//strong.parentNode.parentNode.parentNode ————html
//strong.parentNode.parentNode.parentNode .parentNode————document
var div = document.getElementsByTagName('div')[0];
console.log(div.childNodes);
var div = document.getElementsByTagName('div')[0];
console.log(div.firstChild);
var div = document.getElementsByTagName('div')[0];
console.log(div.lastChild);
var strong = document.getElementsByTagName('strong')[0];
console.log(strong.nextSibling);
var strong = document.getElementsByTagName('strong')[0];
console.log(strong.previousSibling);
遍历元素节点。
除了children以外,其他遍历ie9以下不兼容
var strong = document.getElementsByTagName('strong')[0];
console.log(strong.parentElement);
var div = document.getElementsByTagName('div')[0];
console.log(div.children);
var div = document.getElementsByTagName('div')[0];
console.log(div.children.length);
var div = document.getElementsByTagName('div')[0];
console.log(div.firstElementChild);
var div = document.getElementsByTagName('div')[0];
console.log(div.lastElementChild);
var strong = document.getElementsByTagName('strong')[0];
console.log(strong.nextElementSibling);
console.log(strong.previousElementSibling);
元素的标签名,返回字符串,以大写的形式表示,只读
var strong = document.getElementsByTagName('strong')[0];
console.log(typeof(strong.nodeName) + strong.nodeName);
text节点或Comment节点的文本内容,可读写
该节点类型,只读 (返回以上节点类型后面对应的值)
var strong = document.getElementsByTagName('strong')[0];
console.log(strong.nodeType);
Element节点的属性集合 ,属性值可以改,但属性名不可以改
var div = document.getElementsByTagName('div')[0];
console.log(div.hasChildNodes());
<注:以上代码只展示了关键代码>