DOM
增删修
1.创建元素节点和文本节点
方法 |
|
document.createElement("标签名"); |
创建元素节点 |
document.createTextNode("文本信息"); |
创建文本节点 |
父节点.appendChild("传入需要添加节点"); |
把新的子节点添加到指定节点中 |
**案例1:**创建一个"广州"节点,添加到#city下
方式一:
var btn01 = document.getElementById("btn01");
btn01.onclick = function () {
var li = document.createElement("li");
var textNode = document.createTextNode("广州");
li.appendChild(textNode);
var city = document.getElementById("city");
var text = city.appendChild(li);
alert(text);
}
方式二:
var btn07 = document.getElementById("btn07");
btn07.onclick = function () {
var city = document.getElementById("city");
var li = document.createElement("li");
li.innerHTML = "湛江";
city.appendChild(li);
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p id="demo">单击按钮创建有文本的按钮</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
var btn=document.createElement("BUTTON");
var t=document.createTextNode("CLICK ME");
btn.appendChild(t);
document.body.appendChild(btn);
};
</script>
</body>
</html>
**案例2:**将"广州"节点插入到#bj前面
方法 |
描述 |
父节点.insertBefore("新节点","旧节点"); |
可以在指定的子节点前插入新的子节点 |
var btn02 = document.getElementById("btn02");
btn02.onclick = function (newChild, refChild) {
var li = document.createElement("li");
var textNode = document.createTextNode("广州");
li.appendChild(textNode);
var bj = document.getElementById("bj");
var city = document.getElementById("city");
city.insertBefore(li, bj);
};
**案例3:**使用"广州"节点替换#bj节点
方法 |
描述 |
父节点.replaceChild("新节点","旧节点"); |
可以使用指定的子节点替换已经有的子节点 |
var btn03 = document.getElementById("btn03");
btn03.onclick = function () {
var li = document.createElement("li");
var textNode = document.createTextNode("广州");
li.appendChild(textNode);
var bj = document.getElementById("bj");
var city = document.getElementById("city");
city.replaceChild(li,bj);
};
**案例4:**删除#bj节点
方法 |
描述 |
父节点.removeChild("子节点"); |
删除子节点 |
var btn04 = document.getElementById("btn04");
btn04.onclick = function () {
var bj = document.getElementById("bj");
var city = document.getElementById("city");
city.removeChild(bj);
};
案例5:读取#city内的HTML代码
var btn05 = document.getElementById("btn05");
btn05.onclick = function () {
var city = document.getElementById("city");
alert(city.innerHTML);
};
案例6:设置#bj内的HTML代码
var btn06 = document.getElementById("btn06");
btn06.onclick = function () {
var bj = document.getElementById("bj");
bj.innerHTML = "海康";
};
注意是:在a
标签中,返回false
后,禁用掉a
跳转功能或<a href="javascript:;">禁用跳转功能</a>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加删除记录练习</title>
<link rel="stylesheet" type="text/css" href="ex_2_style/css.css" />
<script type="text/javascript">
function delA() {
var tr = this.parentNode.parentNode;
var name = tr.children[0].innerHTML;
var flag = confirm("确认删除" + name + "吗?");
if(flag) {
tr.parentNode.removeChild(tr);
}
return false;
};
window.onload = function() {
var allA = document.getElementsByTagName("a");
for(var i = 0; i < allA.length; i++) {
allA[i].onclick = delA;
}
var addEmpButton = document.getElementById("addEmpButton");
addEmpButton.onclick = function() {
var name = document.getElementById("empName").value;
var email = document.getElementById("email").value;
var salary = document.getElementById("salary").value;
var tr = document.createElement("tr");
var nameTd = document.createElement("td");
var emailTd = document.createElement("td");
var salaryTd = document.createElement("td");
var aTd = document.createElement("td");
var a = document.createElement("a");
var nameText = document.createTextNode(name);
var emailText = document.createTextNode(email);
var salaryText = document.createTextNode(salary);
var delText = document.createTextNode("Delete");
nameTd.appendChild(nameText);
emailTd.appendChild(emailText);
salaryTd.appendChild(salaryText);
a.appendChild(delText);
aTd.appendChild(a);
tr.appendChild(nameTd);
tr.appendChild(emailTd);
tr.appendChild(salaryTd);
tr.appendChild(aTd);
a.href = "javascript:;";
a.onclick = delA;
var employeeTable = document.getElementById("employeeTable");
var tbody = employeeTable.getElementsByTagName("tbody")[0];
tbody.appendChild(tr);
};
};
</script>
</head>
<body>
<table id="employeeTable">
<tr>
<th>Name</th>
<th>Email</th>
<th>Salary</th>
<th> </th>
</tr>
<tr>
<td>Tom</td>
<td>tom@tom.com</td>
<td>5000</td>
<td>
<a href="javascript:;">Delete</a>
</td>
</tr>
<tr>
<td>Jerry</td>
<td>jerry@sohu.com</td>
<td>8000</td>
<td>
<a href="deleteEmp?id=002">Delete</a>
</td>
</tr>
<tr>
<td>Bob</td>
<td>bob@tom.com</td>
<td>10000</td>
<td>
<a href="deleteEmp?id=003">Delete</a>
</td>
</tr>
</table>
<div id="formDiv">
<h4>添加新员工</h4>
<table>
<tr>
<td class="word">name: </td>
<td class="inp">
<input type="text" name="empName" id="empName" />
</td>
</tr>
<tr>
<td class="word">email: </td>
<td class="inp">
<input type="text" name="email" id="email" />
</td>
</tr>
<tr>
<td class="word">salary: </td>
<td class="inp">
<input type="text" name="salary" id="salary" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<button id="addEmpButton">
Submit
</button>
</td>
</tr>
</table>
</div>
</body>
</html>