document对象:
检测document对象用typeof检测,在输出时加上即可检测对象属性。
document的属性:
body 整个文本
title 标题
URL 地址,链接
forms 表单元素
links 超链接
imgs 图片
方法:
write
getElementById(id)根据ID找对象
若找到了返回节点对象,找不到返回null。
DOM通过JS操作HTML进行增删改查:
1.查:属性和getElementById
2.增:
创建元素节点对象:
var odiv=document.createElement('div')
console.log(odiv);
创建文本节点:
createTextNode();
在oldNode前插入new前插入newNode:
insertBefore(newNode,oldNode);
3.替换:
replaceChild();
新节点替换旧节点
4.删除节点:
removeChild();
有个别情况如超链接,超链接在删除时会有一个页面跳转的效果。所以要防止这种事情的发生。
解决方案为:
<ul id="cal">
<li>aaa <a href="javascript:void(0)">删除</a></li>
<li>bbb <a href="javascript:void(0)">删除</a></li>
<li>ccc <a href="javascript:void(0)">删除</a></li>
<li>ddd <a href="javascript:void(0)">删除</a></li>
</ul>
<script>
document.links[0].onclick=function(){alert('a')}
document.links[1].onclick=function(){alert('b')}
document.links[2].onclick=function(){alert('c')}
document.links[3].onclick=function(){alert('d')}
var oul=document.getElementById('cal');
var len=document.links.length;
for(var i=0;i<len;i++){
document.links[i].onclick=function(){
oul.removeChild(this.parentNode);
}
}
</script>
<li>aaa <a href="javascript:void(0)">删除</a></li>
这样就能消除超链接的特性。
this 这个 在点击事件内部
this指被点击的元素
复制节点:
cloneNode(flag);
默认为false不复制子节点,
true复制子节点。
DOM中属性的操作:
1.属性值得修改:
obj.属性名=值;
2.属性值的获取:
obj.属性名
属性映射表:
HTML DOM
src src
alt alt
type type
title title
class className
for htmlFor