打开sublime text3,新建一个HTML文件,设立HTML基本架构。
创建输入和标签作为示范,并且关联js文件。let button1 = document.getElementById("button1")button1.addEventListener("click", function(){let hey = document.createElement("input") hey.type="button" hey.value="新的按钮" document.getElementsByTagName("body")[0].appendChild(hey)})我们这里进行监听事件,点击按钮以后,就会新增一个元素,这里以按钮作为示范。
let button1 = document.getElementById("button1")button1.addEventListener("click", function(){let hey = document.getElementsByTagName("form")[0] hey.removeChild(hey.childNodes[2])})如果有多行数据,那么我们也可以指定来移除掉不需要的元素。
let button1 = document.getElementById("button1")button1.addEventListener("click", function(){let hey = document.getElementsByTagName("input")[0] hey.type = "radio"})如果觉得类型错了,那么我们可以直接进行修改,指定好位置即可。
let button1 = document.getElementById("button1")button1.addEventListener("click", function(){let hey = document.getElementsByTagName("input")[0] if(hey){alert("存在元素") }})如果要查看元素是否存在,我们可以用if来判断。
总结下来就是dom节点的读/写、添加/删除,请看下面的例子。<!DOCTYPE html>
<html xmlns="
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8"/>
<title></title>
<script type="text/javascript">
//定义变量,保存选中的标签
var selectLi
//定义变量,保存修改了的标签
var editedLi=false
window.onload=function()
{
//新增li标签到末尾
document.getElementById("insertEnd").onclick = insertEndclick
//新增li标签到指定位置
var liObj=document.getElementsByTagName("li")
for(var i=0i<liObj.lengthi++)
{
liObj[i].onclick = liChoose
}
document.getElementById("insert").onclick = insertThere
//删除指定标签
document.getElementById("delete").onclick = deleteli
//修改指定标签内容
document.getElementById("edit").onclick = editLi
//将选中的该标签变为文本框进行内容修改
document.getElementById("edit2").onclick = editLi2
//将文本框中的内容保存
document.getElementById("save").onclick = saveLi
}
//新增li标签到末尾
function insertEndclick()
{
var result = prompt("需要插入的li标签文本:", "小黑")
if (result)
{
var newli = document.createElement("li")
newli.innerHTML = result
newli.onclick = liChoose
document.getElementById("ulList").appendChild(newli)
}
}
//新增li标签到指定位置
function insertThere()
{
if (selectLi)
{
var result = prompt("需要插入的li标签文本:", "小黑")
if (result) {
var newli = document.createElement("li")
newli.innerHTML = result
//需要给新增的li标签设置点击事件
newli.onclick = liChoose
document.getElementById("ulList").insertBefore(newli, selectLi)
}
}
else
{
alert("请先选择要插入的位置")
}
}
//高亮选中的标签
function liChoose()
{
var ul = document.getElementsByTagName("li")
for (var i = 0i <ul.lengthi++)
{
ul[i].style.backgroundColor = "white"
}
this.style.backgroundColor = "yellow"
selectLi = this
}
//删除指定标签
function deleteli()
{
if (selectLi)
{
selectLi.parentElement.removeChild(selectLi)
}
else
{
alert("请先选中要删除的标签")
}
}
//修改指定标签
function editLi()
{
if(selectLi)
{
var result = prompt("输入修改内容", "大白")
if(result)
{
selectLi.innerHTML = result
}
}
else
{
alert("请选择要修改的标签")
}
}
//将选中的该标签变为文本框进行内容修改
function editLi2()
{
if(selectLi)
{
//创建一个文本框
var newli = document.createElement("input")
newli.type = "text"
//将文本框内容设置为li标签的文本值
newli.value = selectLi.innerHTML
//将文本框添加到li标签内部
selectLi.removeChild(selectLi.childNodes[0])
selectLi.appendChild(newli)
editedLi = true
}
}
//将文本框中的内容保存
function saveLi()
{
if (editedLi)
{
var editValue = selectLi.childNodes[0].value
selectLi.innerHTML = editValue
}
else
{
alert("没有标签在编辑状态")
}
}
</script>
</head>
<body>
<div>
<input type="button" id="insertEnd" value="新增到末尾" />
<input type="button" id="insert" value="新增到指定位置" />
<input type="button" id="delete" value="删除" />
<input type="button" id="edit" value="修改" />
<input type="button" id="edit2" value="将选中标签变为文本标签进行修改" />
<input type="button" id="save" value="保存" />
</div>
<ul id="ulList">
<li>小猫</li>
<li>小鱼</li>
<li>小狗</li>
<li>大象</li>
<li>树懒</li>
</ul>
</body>
</html>