1.父节点—parentNode
<div> <p id="child">hello world</p></div><script> let child = document.getElementById("child"); console.log(child.parentNode) //<div><p id="child">hello world</p></div></script>
1.1通过js实现点击删除/添加标签
<p><input type="text" placeholder="添加品牌" id="input"><button id="btn">添加</button></p> <ul id="parent"> <li><span>小米</span><a href="#">删除</a></li> <li><span>苹果</span><a href="#">删除</a></li> <li><span>华为</span><a href="#">删除</a></li> </ul> <script> var parent=document.getElementById("parent"); var input=document.getElementById("input"); var btn=document.getElementById("btn"); btn.onclick=function(){ var value=input.value; var li=document.createElement("li"); var span=document.createElement("span"); span.innerHTML=value; li.appendChild(span); var a=document.createElement("a"); a.href="#"; a.innerHTML="删除" li.appendChild(a); parent.appendChild(li); input.value="" } var deletes=document.getElementsByTagName("a"); for(var i=0;i<deletes.length;i++){ deletes[i].onclick=function(){ var parentNode=this.parentNode; parentNode.style.display="none"; return false;//阻止跳转事件的执行 } } </script>
2.子节点childNode和children的区别
- childNodes是获取所有类型的子节点 不会区分文本和元素节点
- children只会获取元素节点
<div id="parent"> hello world <p id="first">good</p> <p>good</p> <p>good</p> </div> <script> /* childNode (7) -->获取子节点 不会区分文本和元素节点 children(4) */ var parent=document.getElementById("parent") var childs=parent.children; var first=document.getElementById("first") console.log(childs) </script>
3.兄弟节点
nextSibling -->获取下一个兄弟节点nextElementSibling -->获取下一个兄弟元素节点
<div id="parent"> hello world <p id="first">good</p> <p>good</p> <p>good</p> </div> <script> var parent=document.getElementById("parent") var childs=parent.children; var first=document.getElementById("first") console.log(first.nextSibling) //#text console.log(first.nextElementSibling) //<p>good</p> </script>
4.第一个/最后一个节点/元素节点
firstChild //包含所有类型的节点firstElementChild //第一个元素节点lastChild //所有类型的节点lastElementChild //最后一个元素节点
5.节点分类