《JS高级程序设计》之八
1、
Node.ELEMENT_NODE(1); 元素节点
Node.ATTRIBUTE_NODE(2); 属性节点
Node.TEXT_NODE(3); 文本节点
每个节点都有一个childNodes属性,其中保存着一个NodeList对象,访问NodeList中的节点,可以通过方括号,也可以使用item()方法。
var firstChild = someNode.childNodes[0];
var secondChild = someNode.childNodes.item(1);
2、可以使用previousSibling 和 nextSibling 属性,访问同胞元素。其中
someNode.firstNode = someNode.childNodes[0];
someNode.lastChild = someNode.childNodes[someNode.childNodes.length-1];
3、节点属性:ownerDocument,该属性指向表示整个文档的文档节点。
4、操作节点:向列表的末尾添加一个节点,appendChild(newCode)。
5、insertBefore() ,接收两个参数:要插入的节点和作为参照的节点。
someNode.insertNode(newNode , oldNode);
replaceChild() , 接收两个参数:要插入的节点和要替换的节点。
someNode.replaceChild(newNode , oldNode);
6、removeChild() , 该方法接收一个参数,即要移除的节点。
someNode.removeChild(someNode.firstChild);
7、cloneNode() ,用于创建调用这个方法的节点的一个完全相同的副本,接受一个布尔值参数,表示是否执行深复制,在参数为true的情况下,执行深复制,即复制节点以及整个子节点树,在参数为false的情况下,执行浅复制,即只复制节点本身。
8、normalize() ,唯一的作用是处理文档树中的文本节点。如果找到了空文本节点,则删除它,如果找到了相邻文本节点,则合并为一个文本节点。
9、跨域安全限制:来自不同子域的页面无法通过JS通信,将每个页面的document.domain设置为相同的值,这些页面就可以相互访问对方包含的JS对象了。
10、文档写入,有4个方法,write() writeln() open() close()。write()会原样写入,而writeln()则会在字符串的末尾添加一个换行符(\n)。如果在文档加载结束之后再调用document.write(),那么输出内容将会重写整个页面。open() 和 close() 分别用于打开和关闭网页的输出流。如果是在加载期间使用write() 或 writeln() 方法,则不需要用到这个方法。
11、操作特性的DOM方法: getAttribute() setAttribute() removeAttribute()