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.节点分类