js怎样添加,移除,移动,复制,创建和查找节点

JavaScript012

js怎样添加,移除,移动,复制,创建和查找节点,第1张

1、添加节点append方法

栗子:为body添加一个内容为sss的文本节点

document.body.appendChild(document.createTextNode("sss"))

2、移除节点,removeChild移除某个节点的子节点

栗子:

var ccn=document.getElementById("sd").childNodes[0]//获取到要移除的节点

document.getElementById("sd").removeChild(ccn)//将id为sd的第一个子节点移除

3、移动,控制

栗子:将id为sd的节点向右边移动50px

var sdds=document.getElementById("sd")

sdds.style.left=parseInt(sdds.style.left)+50+"px"

<div id='sd' style="position: absoluteleft: 10px">sd</div>

4、创建节点

document.createTextNode("sss")//创建文本节点

document.createElement("p")//创建p节点

5、查找节点

document.getElementById('oo')//根据id查找

document.getElementsByTagName("p")//根据标签名字查找节点

...

总结下来就是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>