一、查看节点
- getElementById( ) 元素的ID名称来访问,返回对拥有指定id的第一个对象的引用
- getElementsByName( ) 按元素的name名称来访问,返回带有指定名称的对象的集合
- getElementsByTagName( )按标签来访问,返回带有指定标签名的对象的集合
<body>
<div id="box">hello box</div>
</body>
<script>
var oDiv = document.getElementById("box"); //div元素对象
// var oDiv = document.getElementsByTagName("div")[0];
// console.log(oDiv.nodeName); //节点名称 DIV
// console.log(oDiv.tagName); //标签名称 DIV
// console.log(oDiv.nodeType); //1 节点类型
// console.log(oDiv.nodeValue); //null 节点值
// var attr = oDiv.getAttributeNode("id");
// console.log(attr);
// alert(attr); //[object Attr]属性对象
// console.log(attr.nodeName); //节点名称 属性名
// console.log(attr.nodeType); //节点类型 2
// console.log(attr.nodeValue); //节点值 属性值
var ch = oDiv.firstChild; //第一个子节点
// console.log(ch);
// alert(ch); //[object Text] 文本对象节点
console.log(ch.nodeName); //节点名称 文本
console.log(ch.nodeType); //节点类型 3
console.log(ch.nodeValue); //节点值 文本值
// get获取
// Attribute 属性
// Node 节点
// 节点类型:
// 元素节点 1
// 属性节点 2
// 文本节点 3
</script>
二、查看节点
1、根据层次关系查找节点
(1) 通过父节点对象查找子节点对象
- 父节点对象.firstChild 获取当前元素的第一个子节点
- 父节点对象.lastChild 获取当前元素的最后一个子节点
- 父节点对象.childNodes 获取当前元素的所有子节点 可能会有空格
- 父节点对象.firstElementChild 查找父节点下的第一个子元素节点
- 父节点对象.lastElementChild 查找父节点下的最后一个子元素节点
- 父节点对象.children:获取当前元素的所有子元素
(2)通过子节点对象查找父节点对象
- 子节点对象.parentElement 通过子节点查找父元素
- 子节点对象.parentNode 获取当前元素的父元素
(3)通过子节点查找兄弟节点
- 子节点对象.previousSibling 获取当前元素的前一个兄弟节点
- 子节点对象.nextSibling 获取当前元素的后一个兄弟节点
- 子节点对象.previousElementSibling 获取当前元素的前一个兄弟节点
- 子节点对象.nextElementSibling 获取当前元素的后一个兄弟节点
<body>
<ul id="box">
<li id="list">列表1</li>
<li>列表2</li>
<li>列表3</li>
</ul>
</body>
<script>
var oUl = document.getElementById("box");
var oLi = document.getElementById("list");
// console.log(oUl.firstChild);//第一个子节点 可能有文本节点 换行
// console.log(oUl.firstElementChild);//第一个子元素节点
// console.log(oUl.lastChild);//最后一个子节点 可能有文本节点 换行
// console.log(oUl.lastElementChild);//最后一个子元素节点
// console.log(oUl.childNodes);//ul里的所有的子节点对象 可能有文本节点
console.log(oUl.children);//ul里的所有的子元素节点对象
// console.log(oUl.firstChild.nodeType); //3
// console.log(oUl.firstChild.nodeValue); //
// console.log(oUl.childNodes.length); //7
// var elArr = [];
// for (var i = 0; i < oUl.childNodes.length; i++) {
// // console.log(oUl.childNodes[i]);
// if(oUl.childNodes[i].nodeType === 1){
// elArr.push(oUl.childNodes[i])
// }
// }
// console.log(elArr);
console.log(oLi.parentNode); //查找父节点
console.log(oLi.parentElement);//查找父元素
// 父节点查找子节点
// 通过父节点对象查找子节点对象(可能会有文本节点) 兼容性好
// 父节点对象.firstChild 查找父节点下的第一个子节点
// 父节点对象.lastChild 查找父节点下的最后一个子节点
// 父节点对象.childNodes 多个 查找父节点下的所有的子节点
// 通过父节点对象查找子元素节点对象
// 父节点对象.firstElementChild 查找父节点下的第一个子元素节点
// 父节点对象.lastElementChild 查找父节点下的最后一个子元素节点
// 父节点对象.children 多个 查找父节点下的所有的子元素节点
// 子节点查找父节点
// 子节点对象.parentNode 通过子节点查找父节点
// 子节点对象.parentElement 通过子节点查找父元素
</script>
三、查看/修改/删除属性节点
- 查看属性节点:getAttribute("属性名")
- 修改属性节点:setAttribute("属性名","属性值")
- 删除属性节点:removeAttribute(“属性名”)
<body>
<ul id="box" a="10">
<li>列表1</li>
<li id="list">列表2</li>
<li>列表3</li>
</ul>
</body>
<script>
var oUl = document.getElementById("box");
// console.log(oUl.id);
// console.log(oUl.a);//无法获取自定义的属性值
// console.log(oUl.getAttribute("id"));
// console.log(oUl.getAttribute("a")); //可以获取自定义属性
// 设置
// oUl.title = "hello"
// oUl.b = 100;
oUl.setAttribute("title","hello")
oUl.setAttribute("b",100);
// oUl.removeAttribute("a");
oUl.removeAttribute("a");
// 节点对象.getAttribute("属性名") 根据属性名获取属性值
// 节点对象.setAttribute("属性名","属性值")
// 节点对象.removeAttribute("属性名") 删除对应的这对属性
</script>
四、创建和增加节点 的方法
- createElement():创建元素节点
- appendChild():末尾追加方式插入节点
- insertBefore():在指定节点前插入新节点
- cloneNode():克隆节点
<style>
img{
width: 100px;
}
</style>
</head>
<body>
<div id="box">
hello world
</div>
<button id="btn">点击添加图片</button>
</body>
<script>
var oDiv = document.getElementById("box");
var oBtn = document.getElementById("btn");
// var oSpan = document.createElement("span");
oBtn.onclick = function(){
var oImg = document.createElement("img");//创建图片节点对象
// oImg.src = ""
oImg.setAttribute("src","./img/biaoqing.webp");//设置图片节点对象src属性
// oDiv.appendChild(oImg);//把创建好的图片节点对象追加到div内部最后
document.body.appendChild(oImg);//把创建好的图片节点对象追加到body内部最后
}
// console.log(oSpan);//元素对象
// console.log(oImg);//元素对象
// alert(oSpan);
// oSpan.innerHTML = "我是span";
// console.log(oSpan);//元素对象
// 追加
// oDiv.appendChild(oSpan);
// 创建元素对象
// document.createElement("元素名称")
// 追加元素对象到父元素内部最后
// 父节点对象.appendChild(子节点)
</script>
五、属性操作
<body>
<ul id="box" a="10">
<li>列表1</li>
<li id="list">列表2</li>
<li>列表3</li>
</ul>
</body>
<script>
var oUl = document.getElementById("box");
// console.log(oUl.id);
// console.log(oUl.a);//无法获取自定义的属性值
// console.log(oUl.getAttribute("id"));
// console.log(oUl.getAttribute("a")); //可以获取自定义属性
// 设置
// oUl.title = "hello"
// oUl.b = 100;
oUl.setAttribute("title","hello")
oUl.setAttribute("b",100);
// oUl.removeAttribute("a");
oUl.removeAttribute("a");
// 节点对象.getAttribute("属性名") 根据属性名获取属性值
// 节点对象.setAttribute("属性名","属性值")
// 节点对象.removeAttribute("属性名") 删除对应的这对属性
</script>