- getElementById(id)
这是通过id来访问某一元素,最常用的之一,例:<html> <body> <div id="myid"> test </div> <script language="javascript"> alert(document.getElementById("myid").innerHTML); </script> </body> </html>
注意点:如果元素的ID不是唯一,则会取得第一个该ID名称的元素 - getElementsByName(name)
这是通过name来取得某一堆元素(作为数组),看Element后面有个小s就知道了,ID是HTML文档中要求唯一的,name可以不是唯一,如 checkbox、radio等地方会用到多个input用同一个name来识别是否为同党。对了,getElementsByName(name)仅用 于取得input、radio、checkbox等元素,如<input name="myradio" type="radio" /> - getElementsByTagName(tagname) 看这方法就知道这也是取得某一堆元素(作为数组),是通过TagName也就是标签名来取得。你可以遍历这个数组获得每一个单独的元素。当一个DOM结构 很大时,可以通过它来有效地缩小搜查范围。
<html> <head> <script> function test() { testall=document.getElementsByTagName("body"); testbody=testall.item(0); //获得所有tagName是body的元素(当然每个页面只有一个) testall=testbody.getElementsByTagName("p");// 获得body子元素种的所有P元素 testnode=testall.item(1); // 获得第二个P元素 alert(testnode.firstChild.nodeValue); //显示这个元素的文本 } </script> </head> <body> <p>hi</p> <p>hello</p> <script language="javascript"> test(); </script> </body> </html>
- appendChild(node)
向当前的元素(应该叫对象比较恰当)追加节点。<html> <body> <head> </head> <div id="test"></div> <script type="text/javascript"> var newdiv=document.createElement("div") var newtext=document.createTextNode("A new div") newdiv.appendChild(newtext) document.getElementById("test").appendChild(newdiv) </script> </body> </html>
刚才我在第一个例子中为了显示出内容,用了innerHTML,刚才看到文章才得知innerHTMl不属于DOM。 - removeChild(childreference)
删除当前节点的子节点,返回被删除的节点。
这个被删除的节点可以被插入到别的地方<html> <body> <div id="parent"><div id="child">A child</div></div> <script language="javascript"> var childnode=document.getElementById("child") var removednode=document.getElementById("parent").removeChild(childnode) </script> </body> </html>
- cloneNode(deepBoolean)
复制并返回当前节点的复制节点,复制节点是一个孤立节点,它复制了原节点的属性,在把这个新节点加入到document前,根据需要修改ID属性确保其 ID的唯一。
这个方法支持一个布尔参数,当deepBoolean设置true时,复制当前节点的所有子节点,包括该节点内的文本。<html> <body> <p id="mynode">test</p> <script language="javascript"> p=document.getElementById("mynode") pclone = p.cloneNode(true); p.parentNode.appendChild(pclone); </script> </body> </html>
- replaceChild(newChild, oldChild)
把当前节点的一个子节点换成另一个节点<html> <body> <div id="mynode2"> <span id="orispan">span</span> </div> <script language="javascript"> var orinode=document.getElementById("orispan"); var newnode=document.createElement("p"); var text=document.createTextNode("test ppp "); newnode.appendChild(text); document.getElementById("mynode2").replaceChild(newnode, orinode); </script> </body> </html>
实例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jsdom.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script language="javascript" type="text/javascript">
function addcontent(){
var name=document.getElementById("name").value;
if(name==""){
alert("字段不能为空!");
document.getElementById("name").focus();
return;
}
var row=document.createElement("tr"); //createElement() 方法可创建元素节点。
row.setAttribute("id",name); // setAttribute(name,value) 方法创建或改变某个新属性。 name 必需。规定要设置的属性名。 value 必需。规定要设置的属性值。
var cell=document.createElement("td");
cell.appendChild(document.createTextNode(name));
row.appendChild(cell);
var deleteButton = document.createElement("input");
deleteButton.setAttribute("type","button");
deleteButton.setAttribute("value","删除");
deleteButton.οnclick= function() { deletecontent(name);}
cell=document.createElement("td");
cell.appendChild(deleteButton);
row.appendChild(cell);
document.getElementById("contentlist").appendChild(row);
document.getElementById("name").value="";
}
function deletecontent(id){
if(id!=null){
var rowToDelete=document.getElementById(id);
var contentlist=document.getElementById("contentlist");
contentlist.removeChild(rowToDelete);
}
}
</script>
</head>
<body>
<hr width=600 align=center><br>
<table border=0 bgcolor="#f5efe7">
<tr>
<td colspan=2 align="center">请输入具体内容:</td>
</tr>
<tr>
<td>添加内容</td>
<td><input type="text" name="content" id="name"><input type="button" οnclick="addcontent();" alt="" value="添加"></td>
</tr>
<tr>
<td colspan=2 align=left>信息管理</td>
</tr>
</table>
<table border="1" width="270">
<tr>
<td valign="top" align="center">信息内容</td>
<td id="operate">操作</td>
</tr>
<tbody id="contentlist"></tbody>
</table>
</body>
</html>