常见的DOM操作
Node类型
- 在DOM1级里定义了一组节点类型,每个节点都有一个nodeType属性,用于表明节点在DOM中扮演的角色,同时每一个类型对应着一个值,文档中的每一个节点一定属于其一:
NodeType 节点值 | Named Constant 节点类型 |
---|---|
1 | Node.ELEMENT_NODE(1) |
2 | Node.ATTRIBUTE_NODE(2) |
3 | Node.TEXT_NODE(3) |
4 | Node.CDATA_SECTION_NODE(4) |
5 | Node.ENTITY_REFERENCE_NODE(5) |
6 | Node.ENTITY_NODE(6) |
7 | Node.PROCESSING_INSTRUCTION_NODE(7) |
8 | Node.COMMENT_NODE(8) |
9 | Node.DOCUMENT_NODE(9) |
10 | Node.DOCUMENT_TYPE_NODE(10) |
11 | Node.DOCUMENT_FRAGMENT_NODE(11) |
12 | Node.NOTATION_NODE(12) |
+ 如果你获取的那个节点为someNode
if(someNode.nodeType==Node.ELEMENT_NODE){
//Node.ELEMENT_NODE这个在IE中是不认的!我们需要做一些改变,因为它本身是有值的,我们可以利用这个值
alert("Node is an element!");
}
if(someNode.nodeType==1){ //这个就适用于所有的浏览器了
alert("Node is an element!");
}
Node Types
- 文档、元素、属性以及 HTML 或 XML 文档的其他方面拥有不同的节点类型。存在 12 种不同的节点类型,其中可能会有不同节点类型的子节点:
序号 | 节点类型 | 描述 | 子节点 |
---|---|---|---|
1 | Element | 代表元素 | Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference |
2 | Attr | 代表属性 | Text, EntityReference |
3 | Text | 代表元素或属性中的文本内容。 | None |
4 | CDATASection | 代表文档中的 CDATA 部分(不会由解析器解析的文本)。 | None |
5 | EntityReference | 代表实体引用。 | Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference |
6 | Entity | 代表实体。 | Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference |
7 | ProcessingInstruction | 代表处理指令。 | None |
8 | Comment | 代表注释。 | None |
9 | Document | 代表整个文档(DOM 树的根节点)。 | Element, ProcessingInstruction, Comment, DocumentType |
10 | DocumentType | 向为文档定义的实体提供接口 | None |
11 | DocumentFragment | 代表轻量级的 Document 对象,能够容纳文档的某个部分 | Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference |
12 | Notation | 代表 DTD 中声明的符号。 | None |
节点类型的返回值
- 对于每种节点类型,nodeName 和 nodeValue 属性的返回值:
序号 | 节点类型 | nodeName 返回 | nodeValue 返回 |
---|---|---|---|
1 | Element | 元素名 | null |
2 | Attr | 属性名称 | 属性值 |
3 | Text | text | 节点的内容 |
4 | CDATASection | cdata-section | 节点的内容 |
5 | EntityReference | 实体引用名称 | null |
6 | Entity | 实体名称 | null |
7 | ProcessingInstruction | target | 节点的内容 |
8 | Comment | comment | 注释文本 |
9 | Document | document | null |
10 | DocumentType | 文档类型名称 | null |
11 | DocumentFragment | document 片段 | null |
12 | Notation | 符号名称 | null |
- 当然这些并不需要你记住它,但是需要你知道它,用到它的时候会查,或者看到代码要知道它表达的是什么意思!
有趣的数组基本操作
- js里的数组是一个大大区别于另外的强类型语言的“另类”!因为它可以同时装任何类型的数据!如:
var myArray=[1,"1",{name:Wytheo},[1]];
所以,js里的数据结构也是最复杂,最灵活的数据结构!
数组声明
- 普通声明
直接var一个数组对象,然后赋一个空数组给它[]:
var myArray=[];
myArray[0]=1;
myArray[1]=