前言
了解到如何取到父母、兄弟、孩子节点后,我们还可以对DOM节点进行一些操作:
创建节点
document.createElement("标签名")
var creatDom = document.createElement("div");
console.log(creatDom);
如图,利用 document.createElement("")
,可以创建已存在的标签,如 <div>
标签,也可以创建一个不存在的标签,如 document.createElement("abc")
创建一个 <abc>
标签
插入节点
appendChild(要插入的子节点)
:在父节点的最后插入一个新的子节点
<body>
<ul id="list1">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
<ul id="list2">
<li>d</li>
<li>e</li>
<li>f</li>
</ul>
<script>
var oUl1 = document.querySelector("#list1");
var oUl2 = document.querySelector("#list2");
// var creatDom = document.createElement("div");
// console.log(creatDom);
var insert1 = oUl1.appendChild(oUl2);
console.log(insert1);
</script>
</body>
输出list2的内容,如图,显示list2被插入到list1的后面
insertBefore(要插入的子节点,作为参考的子节点)
:将该节点的子节点插入到作为参考的子节点前面
<body>
<ul id="list1">
<li id="li1">a</li>
<li id="li2">b</li>
<li>c</li>
</ul>
<ul id="list2">
<li>d</li>
<li>e</li>
<li>f</li>
</ul>
<script>
var oUl1 = document.querySelector("#list1");
var oUl2 = document.querySelector("#list2");
var oLi1 = document.querySelector("#li1");
var oLi2 = document.querySelector("#li2");
// var creatDom = document.createElement("div");
// console.log(creatDom);
// var insert1 = oUl1.appendChild(oUl2);
// console.log(insert1);
var insert2 = oUl1.insertBefore(oLi2,oLi1);
console.log(insert2);
</script>
</body>
输出li2的内容,即被插入的节点为li2,将li2这一节点插入到li1前面:
删除节点
removeChild(要删除的子节点)
:删除子节点
<body>
<ul id="list1">
<li id="li1">a</li>
<li id="li2">b</li>
<li>c</li>
</ul>
<ul id="list2">
<li>d</li>
<li>e</li>
<li>f</li>
</ul>
<script>
var oUl1 = document.querySelector("#list1");
var oUl2 = document.querySelector("#list2");
var oLi1 = document.querySelector("#li1");
var oLi2 = document.querySelector("#li2");
// var creatDom = document.createElement("div");
// console.log(creatDom);
// var insert1 = oUl1.appendChild(oUl2);
// console.log(insert1);
// var insert2 = oUl1.insertBefore(oLi2,oLi1);
// console.log(insert2);
var deleteDom = oUl1.removeChild(oLi1);
console.log(deleteDom);
</script>
</body>
输出li1,表示删除的节点为li1:
如要删除自己,可以 父节点.removeChild(父节点)
复制节点
cloneNode()
:复制节点
<body>
<ul id="list1">
<li id="li1">a</li>
<li id="li2">b</li>
<li>c</li>
</ul>
<ul id="list2">
<li>d</li>
<li>e</li>
<li>f</li>
</ul>
<script>
var oUl1 = document.querySelector("#list1");
var oUl2 = document.querySelector("#list2");
var oLi1 = document.querySelector("#li1");
var oLi2 = document.querySelector("#li2");
// var creatDom = document.createElement("div");
// console.log(creatDom);
// var insert1 = oUl1.appendChild(oUl2);
// console.log(insert1);
// var insert2 = oUl1.insertBefore(oLi2,oLi1);
// console.log(insert2);
// var deleteDom = oUl1.removeChild(oLi1);
// console.log(deleteDom);
var cloneDom = oLi1.cloneNode();
console.log(cloneDom);
</script>
输出li1的标签 ,表示复制的是li1的标签:
cloneNode()
内的参数默认为 false
,即仅克隆标签本身,不复制其内容,当将参数设置为 true
时,复制包含标签本身及其内容:
var cloneDom = oLi1.cloneNode(true);
console.log(cloneDom);
以上为本萌新个人总结,如有不当之处望指正,有问题可以联系
邮箱:yuna_03@163.com或
QQ:2635591841
更于2021.2.21