核心提示:元素的创建、删除、插入、替换!DOCTYPE htmlhtml lang=enheadmeta charset=UTF-8titleDOM/title/headscript/*document.cre...
元素的创建、删除、插入、替换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM</title>
</head>
<script>
/*
document.createElement() 创建一个元素
父级.appendChild() 在父元素的子元素下面添加一个元素
父级.insertBefore() 在父元素的子元素前面插入一个元素
父级.replaceChild() 替换父级下的某个子元素
父级.removeChild() 删除父级下的某个子元素
appendChild、insertBefore、replaceChild都可以操作动态创建出来的节点,也可以操作已有的节点
*/
window.onload=function (){
var aInput=document.getElementsByTagName('input');
var oUl=document.getElementsByTagName('ul')[0];
var oP=document.getElementsByTagName('p')[0];
var oDiv=document.getElementsByTagName('p')[0];
aInput[1].onclick=function (){
var oLi=document.createElement('li');//创建一个元素li
oLi.innerHTML=aInput[0].value;
var oA=document.createElement('a');//创建一个元素a
oA.innerHTML='删除';
oA.href='javascript:;';
/*
oUl.appendChild(oLi);//把创建的li添加给ul,在父元素的最后一个子元素后面添加
oLi.appendChild(oA);//把创建的a添加给li,在父元素的最后一个子元素后面添加
oUl.insertBefore(oLi,oUl.children[0]);//在父元素的子元素前面插入一个元素
在非标准IE下,如果第二个参数的节点不存在,会报错
在其他标准浏览器下,如果第二个参数的节点不存在,
则会以appendChild形式进行添加
*/
//解决方案
if (oUl.children[0]) {
oUl.insertBefore(oLi,oUl.children[0]);
oLi.appendChild(oA);
}else{
oUl.appendChild(oLi);
oLi.appendChild(oA);
}
//删除元素
oA.onclick=function (){
oUl.removeChild(this.parentNode);
}
}
//替换元素
aInput[2].onclick=function (){
document.body.replaceChild(oDiv, oP);
}
};
</script>
<body>
<input type="text" name="">
<input type="button" value="添加" name="">
<br>
<p>p标签:22222222</p>
<input type="button" value="替换" name="">
<p> p标签:1111111111</p>
<ul></ul>
</body>
</html>
元素的宽高
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM</title>
<style type="text/css">
p{width: 100px;height: 100px;border:1px solid #000;padding: 10px;}
</style>
</head>
<body>
<!--
width height
getComputedStyle(oDiv1).width 样式宽 样式中设置的宽度
oDiv1.clientWidth 可视宽 样式中设置的宽度 +padding
oDiv1.offsetWidth 占位宽 样式中设置的宽度 +padding +border 盒子实际占据的大小
-->
<p id="p1"></p>
<script>
var oDiv1=document.getElementById('p1');
alert(getComputedStyle(oDiv1).width);//100 样式宽
alert(oDiv1.clientWidth);//120 可视宽
alert(oDiv1.offsetWidth);//122 占位宽
</script>
</body>
</html>


