JavaScript连载29-元素类型获取、节点CD
一、元素类型分类
常量名 | 常量值 | 节点类型 | 描述 |
---|---|---|---|
Node.ELEMENT_NODE | 1 | Element | 代表元素 |
Node.ATTRIBUTE_NODE | 2 | Attr | 代表属性 |
Node.TEXT_NODE | 3 | Text | 代表元素或者属性中的文本内容 |
Node.CDATA_SECTION_NODE | 4 | CDATASection | 代表文档中的CDATA部(不会由解析器解析的文本) |
Node.ENTITY_PEFERENCE_NODE | 5 | EntityReference | 代实体引用 |
Node.ENTITY_NODE | 6 | Entity | 代表实体 |
Node.PROCESSING_INSTRUCTION_NODE | 7 | Processinginstruction | 代表处理指令 |
Node.COMMENT_NODE | 8 | Comment | 代表注释 |
Node.DOCUMENT_NODE | 9 | Document | 代表整个文档(DOM树的根节点) |
Node.DOCUMENT_TYPE_NODE | 10 | DocumentType | 向为文档定义的实体提供接口 |
Node.DOCUMENT_FRAGMENT_NODE | 11 | DocumentFragment | 代表轻量级的Document对象(文档的某个部分) |
Node.NOTATION_NODE | 12 | Notation | 代表DTD中的声明符号 |
- 下面我们举个例子,取出一些元素标签
<body>
<div id="box">
<button class="btn">按钮</button>
<span id="span">
<a href="#">一个链接</a>
</span>
<p class="lk">我是段落标签</p>
<div>哈哈哈</div>
</div>
<script>
window.onload = function (ev) {
//1.获取标签
var box = document.getElementById("box");
//2.获取标签内部的所有节点
var allNodeLists = box.childNodes;
//3.过滤元素节点
var newListArr = [];
allNodeLists.forEach(function (value,key,parent) {
// console.log(value);
console.log(value.nodeType);
if(value.nodeType === 1){//这里的意思就是把元素标签拿出来
newListArr.push(value);
}
});
console.log(newListArr);
}
</script>
</body>
二、节点CD
- 文档加载过程补充讲解:
- (1)onload:
window.onload = function(){
//当页面加载完成执行
//当也买你完全加载所有的内容(包括图像、脚本文件、CSS文件等)执行
- (2)onunload:
window.onunload = function(){
//当用户退出页面时候执行
}
三、DOM
- 节点操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>D29_1_TagCD</title>
</head>
<body>
<div class = "box">
<p id="word">xiaoming</p>
<button id="btn">点我</button>
</div>
<script>
window.onload = function (ev) {
//CRUD操作
var box = document.getElementsByClassName("box")[0];
//1.创建节点
var img = document.createElement("img")//创建了一个img标签
img.src = "img/img_01.png";
box.appendChild(img);
var btn = document.getElementsByTagName("button")[0];
box.insertBefore(img,btn);
}
</script>
</body>
</html>
三、源码:
- D28_1_GetAPI.html
- D29_1_TagCD.html
- 地址:
https://github.com/ruigege66/JavaScript/blob/master/D28_1_GetAPI.html
https://github.com/ruigege66/JavaScript/blob/master/D29_1_TagCD.html
- 博客园:
https://www.cnblogs.com/ruigege0000/
- CSDN:
https://blog.csdn.net/weixin_44630050?t=1
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
赞 (0)