Dom使用方法的介绍

Dom使用方法的介绍

1.替换节点 replaceNode

替换节点必须是用父节点的元素去调用这个方法

举例:

<div id="bdy">

<select name="edu" id="edus">

<option value="博士" id="bs">博士</option>

<option value="硕士">硕士</option>

<option value="本科">本科</option>

<option value="本科" id="dz">大专</option>

</select>

</div>

<div>

<input type="text" id="uname" value="确定">

</div>

替换节点,把博士替换为大专:

//博士节点

var bsNode = document.getElementById("bs");

//父节点

var edusNode = bsNode.parentNode;

//替换的节点

var dzNode = document.getElementById("dz");

edusNode.replaceNode(dzNode,bsNode);

注:值得注意的是在替换的时候要保证两个都存在,一般情况下用id来来获取,所以应该有id

2.属性节点的使用(以上面的html的代码为例)

(1).getAttribute

getAttribute 通过元素节点来获取该节点的属性名

举例:

var edus = document.getElementById("edus");

var value = edus.getAttribute("name");

输出的结果为:edu

(2).getAttributeNode

getAttributeNode 通过元素节点来获取指定的属性名节点对象

举例:

var nameNode = edus.getAttributeNode("name");

alert(nameNode.nodeName+"-----"+nameNode.nodeValue+"===="+nameNode.nodeType);

(3).setAttribute

setAttribute(newNode,oldNode) 设置的属性值是有2个参数,意思是为哪个属性修改值,修改的值是多少

举例1:

edus.setAttribute("name","laowang");

执行的效果为:当执行之后,在页面中没有任何变化,但是当在修改之后输出的哈=话,就有变化。

举例2:改变input中的type,看看效果

var uname = document.getElementById("uname");

//设置type的属性值为button

uname.setAttribute("type","button");

//设置type的属性值为checkbox

uname.setAttribute("type","checkbox");

//得到改变后的type值

var value = uname.getAttribute("type");

//输出类型

alert(value);

执行的效果:在firefox中执行的效果可以明显的看出随着type的改变而改变,而在IE中没有显示,因为在IE中设置的属性的语句是无效的。

3.当选中复选框的时候触发的事件,并弹出选中的value值

var edus = document.getElementById("edus");

edus.onchange = function(){

//获取edus里面的所有的options节点

var options = this.getElementsByTagName("option");

//遍历

for(var i = 0;i<options.length;i++){

//判断是否选中

if(options[i].selected){

//打印出结果

alert("你改变了选择:"+options[i].value);

}

}

}

弹出选中的value值还可以这么写,简化:

edus.onchange = function(v){

alert(v.explicitOriginalTarget.label);

}

4.getElementsByName

//获取的是name=fav的所有节点对象

var favs = document.getElementsByName("fav");

//遍历出节点的value值

for(var i = 0;i<favs.length;i++){

//得到一个具体的节点

var fav = favs[i];

//注册事件

fav.onclice = function(){

alert("真的喜欢"+this.value+"?");

}

}

5.getElementsByTagName

使用的html为:

<div id="spr">

你喜欢的小品和歌曲是谁?<br/>

<hr color="red"/>

<input type="checkbox" name="fav" value="荆轲刺秦">荆轲刺秦

<input type="checkbox" name="fav" value="面试">面试

<input type="checkbox" name="fav" value="穿越">穿越

<input type="checkbox" name="fav" value="因为爱情">因为爱情

</div>

getElementsByTagName 获取edus下面的指定的元素名称的value值

举例1 :

var edus = document.getElementById("edus");

var options = edus.getElementsByTagName("option");

var msg = "";

//遍历所有的option的value值

for(var i = 0;i<options.length;i++){

msg+=" value="+options[i].value+"----";

}

alert(msg);

执行的效果为:

value=博士---- value=硕士---- value=本科---- value=大专 ----

举例2:

使用的getElementById举例(以以上的代码为例):

//根据标签名称获取该标签名称的input的节点

var inputNodes = document.getElementsByTagName("input");

//获取指定节点中的所有input对象

var sprNode = document.getElementById("spr");

//getElementsByTagName可以归某个节点所有 sprNode必须是元素节点才可调研

var sprInputsNodes = sprNode.getElementsByTagName("input");

//打印出spr节点中所有的input节点对象,并且要求type=“checkbox”

//遍历所有的spr里边的节点

for(var i = 0;i<sprInputsNodes.length;i++){

//获取指定的节点

var inputNode = sprInputsNodes[i];

if(inputNode.type=="checkbox"){

alert(inputNode.value);

}

}

注: 从以上的代码中可以看出getElementsByTagName的调用对象不止是document,也可以是元素节点

6.创建元素节点 createElement

以下面这段html为例:

<div id="bdy">

</div>

举例代码为:

//创建元素

var inputNode = document.createElement("input");//返回的是元素节点

//为元素赋值

inputNode.setAttribute("type","text");

inputNode.setAttribute("name","uname");

//获取指定的节点

var bdyNode = document.getElementById("bdy");

//给指定的节点添加子节点

bdyNode.appendChild(inputNode);//添加到末尾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章