DOM(创建、插入和删除元素)
1.创建DOM元素
createElement(标签名) 创建一个节点
appendChild(节点) 追加一个节点
例子:为ul插入li 并且为li元素插入一些文字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function () {
var oBtn = document.getElementById('btn');
var oUl = document.getElementById('ul1');
var oText = document.getElementById('text1');
oBtn.onclick = function () {
var oLi = document.createElement('li');
oLi.innerHTML = oText.value;
oUl.appendChild(oLi);
}
};
</script>
</head>
<body>
<input id='text1' type="text">
<input id="btn" type="button" value="创建li">
<ul id="ul1">
</ul>
</body>
</html>
效果:

appendChild(节点) 追加一个节点,每次都在尾部追加。
appendChild有两种意思:1.先把元素从原有父级上删掉 2.添加到新的父级
如:点击移动按钮,使最上面的移到最下面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#ul1 {
background: green;
}
</style>
<script>
window.onload = function () {
var oUl1 = document.getElementById('ul1');
var oBtn = document.getElementById('btn1');
oBtn.onclick = function () {
var oLi = oUl1.children[0];
oUl1.appendChild(oLi);
};
};
</script>
</head>
<body>
<input id='btn1' type="button" value="移动">
<ul id="ul1">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</body>
</html>
效果:

借用appendChild可以排序:
如:点击排序按钮,使数字从小到大排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#ul1 {
background: green;
}
</style>
<script>
window.onload = function () {
var oUl1 = document.getElementById('ul1');
var oBtn = document.getElementById('btn1');
var aLi = oUl1.getElementsByTagName('li');
oBtn.onclick = function () {
var arr = [];
for(var i=0;i<aLi.length;i++){
arr[i] = aLi[i];
}
arr.sort(function (li1,li2) {
var num1 = parseInt(li1.innerHTML);
var num2 = parseInt(li2.innerHTML);
return num1 - num2;
});
for(var i=0;i<arr.length;i++){
oUl1.appendChild(arr[i]);
}
};
};
</script>
</head>
<body>
<input id='btn1' type="button" value="排序">
<ul id="ul1">
<li>16</li>
<li>12</li>
<li>36</li>
<li>24</li>
</ul>
</body>
</html>
效果:

2.插入元素
insertBefore(节点,原有节点) 在已有元素前插入
例子:倒序插入li
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function () {
var oBtn = document.getElementById('btn');
var oUl = document.getElementById('ul1');
var oText = document.getElementById('text1');
var aLi = oUl.getElementsByTagName('li');
oBtn.onclick = function () {
var oLi = document.createElement('li');
oLi.innerHTML = oText.value;
if(aLi.length > 0){
oUl.insertBefore(oLi,aLi[0]);
}else {
oUl.appendChild(oLi);
}
}
};
</script>
</head>
<body>
<input id='text1' type="text">
<input id="btn" type="button" value="创建li">
<ul id="ul1">
</ul>
</body>
</html>
效果:

3.删除DOM元素
removeChild(节点) 删除一个节点
例子:删除li
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function () {
var oUl = document.getElementById('ul1');
var aA = document.getElementsByTagName('a');
for(var i=0;i<aA.length;i++){
aA[i].onclick = function () {
oUl.removeChild(this.parentNode);
};
}
};
</script>
</head>
<body>
<ul id="ul1">
<li>111111<a href="#">删除</a></li>
<li>222222<a href="#">删除</a></li>
<li>333333<a href="#">删除</a></li>
<li>444444<a href="#">删除</a></li>
<li>555555<a href="#">删除</a></li>
</ul>
</body>
</html>
效果:

浙公网安备 33010602011771号