1.DOM:document object model的简写,文档对象模型.将整个html页面看作倒挂的 树,html页面每个标签看作树的节点对象.
2.DOM的作用:
2.1:有了DOM模型,我们方便操作节点对象内容
2.2:有了DOM模型,我们方便操作节点对象属性
2.3:有了DOM模型,我们方便操作节点对象样式
2.4:有了DOM模型,我们方便操作节点对象事件
3.获得元素节点对象的方式:
3.1:通过ID名获得一个节点对象:document.getElementById(“id名”)
3.2:通过标签名获得节点对象集合:document.getElementsByTagName(“标签名”)
3.3:通过类名获得节点对象集合:document.getElementsByClassName(“类名”)
3.4:通过name属性名获得节点对象集合:
document.getElementsByName(“name属性名”)
eg://3.1:通过ID名获得一个节点对象
var ob1=document.getElementById(“d2”);
//用对名调用方法输出内容
alert(ob1.innerHTML);
//3.2:通过标签名获得节点对象集合
var ob2=document.getElementsByTagName("h2");
//遍历集合,输出每个标签对象内容
for(var i=0;i<ob2.length;i++){
//用对名调用方法输出内容
alert(ob2[i].innerHTML);
}
//3.3:通过类名获得节点对象集合
var ob3=document.getElementsByClassName("c2");
//遍历集合,输出每个标签对象内容
for(var i=0;i<ob3.length;i++){
//用对名调用方法输出内容
alert(ob3[i].innerHTML);
}
//3.4:通过name属性名获得节点对象集合
var ob4=document.getElementsByName("like");
//遍历集合,输出每个标签对象内容
for(var i=0;i<ob4.length;i++){
//用对名调用方法输出内容
alert(ob4[i].value);
}
4.DOM节点对象操作:
4.1:DOM操作节点对象的内容:包括节点对象文本内容,子节点标签,及子节点的文本内容
获取节点对象的内容:节点对象.innerHTML
设置节点对象的内容:节点对象.innerHTML=“新值”;
删除节点对象的内容:节点对象.innerHTML="";
eg:function show1(){
//获取节点对象的内容:节点对象.innerHTML
alert(document.getElementById(“d3”).innerHTML);
}
function show2(){
//设置节点对象的内容:节点对象.innerHTML=“新值”;
document.getElementById(“d3”).innerHTML=“我是中国人”;
}
function show3(){
//删除节点对象的内容:节点对象.innerHTML="";
document.getElementById(“d3”).innerHTML="";
}
4.2:DOM操作节点对象的文本:标签中文本
获取节点对象的文本:节点对象.innerText
设置节点对象的文本:节点对象.innerText="新值";
删除节点对象的文本:节点对象.innerText="";
eg:function show4(){
//获取节点对象的文本:节点对象.innerText
alert(document.getElementById("d3").innerText);
}
function show5(){
//修改节点对象的文本:节点对象.innerText="新值"
document.getElementById("d3").innerText="我是千锋人";
}
function show6(){
//获取节点对象的文本:节点对象.innerText=""
document.getElementById("d3").innerText="";
}
4.3:DOM操作节点对象的属性:
获取节点对象的属性:节点对象.属性名
设置节点对象的属性:节点对象.属性名="新值";
删除节点对象的属性:节点对象.属性名="";
eg:function show7(){
//获取节点对象的属性:节点对象.属性
alert(document.getElementById("d4").src);
}
function show8(){
//修改节点对象的属性:节点对象.属性="新值"
document.getElementById("d4").src="img/4.jpg";
}
function show9(){
//清空节点对象的属性:节点对象.属性=""
document.getElementById("d4").src="";
}
4.4:DOM操作节点对象的样式:节点对象.style.样式名="值"
eg:function show10(){
//给节点对象设置样式
document.getElementById("d3").style.color="red";
document.getElementById("d3").style.border="solid 1px blue";
}
5.javaScript中常用事件:
5.1:onclick 鼠标点击某个对象
5.2:onchange 用户改变域的内容
5.3:onload 某个页面或图像被完成加载
5.4:onmouseover鼠标被移到某元素之上
5.5:onmouseout 鼠标从某元素移开
5.6:onfocus元素获得焦点
5.7:onblur 元素失去焦点
5.8:onsubmit 提交按钮被点击
6.事件机制:
6.1:捕获机制:当父元素与子元素具有相同的事件时,父元素的事件触发了,会自动触发子 元素相同的事件,这叫捕获机制.(大部分浏览器不支持捕获机制)
6.2:冒泡机制:当父元素与子元素具有相同的事件时,子元素的事件触发了,会自动触发父 元素相同的事件,这叫冒泡机制.(大部分浏览器支持冒泡机制)
eg:
6.3:给元素绑定多个事件:节点对象.addEventListener("事件名",function(){事件操作});
eg://给节点对象绑定多个事件
function show(){
document.getElementById("d8").addEventListener("mouseover",function(){
alert("11");
})
document.getElementById("d8").addEventListener("mouseout",function(){
alert("22");
})
}
7.DOM操作节点
7.1:创建节点对象
eg:/第一种:创建节点/
//创建节点对象
var node1=document.createElement(“h1”);
//创建文本
var node1Text=document.createTextNode(“我是千锋人”);
//将文本添加节点中
node1.appendChild(node1Text);
//将节点对象添加到body中
document.getElementById(“bd”).appendChild(node1);
/*第二种:创建节点*/
//创建节点对象
var node2=document.createElement("h2");
//设置节点的文本内容
node2.innerHTML="成年人不玩猫抓老鼠的游戏";
//将节点对象添加到body中
document.getElementById("bd").appendChild(node2);
/*第三种:创建节点*/
//获得body中原来的内容
var bodyContent=document.getElementById("bd").innerHTML;
//加入内容到body中
document.getElementById("bd").innerHTML=bodyContent+"<h3>二师兄,抓 个妖精给师傅玩玩</h3>";
7.2:添加节点对象:节点对象.appendChild(子节点);向元素添加新的子节点,作为最后一个子节 点。
7.3:修改节点对象:父节点对象.replaceChild(新的子节点,原来的子节点);
eg:/*替换节点元素*/
//创建一个新的子节点
var node3=document.createElement("h4");
//给节点设置文本
node3.innerHTML="妖精来了,师傅快跑";
//声明一个变量存原节点对象
var oldNode=document.getElementById("d2");
document.getElementById("bd").replaceChild(node3,oldNode);
7.4:复制节点对象:节点对象.cloneNode(true/false);克隆所有属性以及它们的值。
如果您需要克隆所有后代,请把参数设置 true,否则设置为 false。
eg://复制节点对象
var copynode=document.getElementsByTagName("h1")[0].cloneNode(true);
//将复制节点对象添加body中
document.getElementById("bd").appendChild(copynode);
7.5:删除节点对象:父节点对象.removeChild(子节点);
eg://获得要删除节点的父节点
var parentNode=document.getElementById("bd");
//获得要删除的节点
var h2Node=document.getElementsByTagName("h2")[0];
alert(h2Node.innerHTML);
//删除节点对象
parentNode.removeChild(h2Node);
8.前端程序调试
8.1:用代码调试:在认为在问题的代码地方用alert()弹出一个消息;
8.2:用断点调试:在浏览器页面->检查->source->打开要设计的页面->设置断点->重新加 载调试页面->运行到断点处进入调试页面->再向下箭头一步一步调试,观 察变量,找到出错地方.
9.超链接的问题:
删除选中的商品