DOM(文档对象模型)是由W3C制定的一套访问和操作XML(eXtensible Markup Language)文档的标准,即API。比如DOM告诉JavaScript引擎如何在浏览器窗口中显示和操作XML创建的标记(Tag)。

由于HTML与XML的相似性及差异,JavaScript不仅实现了标准的DOM方法和属性(即由W3C制定的),而且还实现了HTML特有的 DOM方法和属性,前者称为DOM Core,并不专属于JavaScript,后者称为HTML-DOM。不管是DOM Core还是HTML-DOM,我们在使用JavaScript的时候要注意浏览器之间的兼容性,因为不同的浏览器对这两类方法和属性的支持可能不一样。 这里不详谈DOM Core和HTML-DOM,以及跨浏览器兼容性,教材上都有详细描述。但一般推荐使用DOM Core方法和属性,尽管稍显繁杂。


常见的Core DOM方法如下:

1、创建节点


createElement()
createTextNode()
2、复制节点
cloneNode()
3、插入节点
appendChild()
insertBefore()
4、删除节点
removeChild()
5、替换节点
replaceChild()
6、查找和设置节点属性
setAttribute()
getAttribute()
7、查找节点
getElementById()
getElementsByTagName()
hasChildNode()

常见的Core DOM属性如下:

node.childNodes
node.firstChild
node.lastChild
node.nextSibling
node.previousSibling
node.parentNode



<!DOCTYPE><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>HTMLDOM</title><styletype="text/css">table,tr,td{text-align:center;border:1pxsolid#000000;border-collapse:collapse;line-height:30px;}table{margin:0pxauto;}td{width:200px;}body{text-align:center;margin:0pxauto;}#frist{margin-top:20px;}</style></head><body><divid="frist"><tableid="myTable"><tr><td>商品名称</td><td>数量</td><td>价格</td><td>操作</td></tr><tr><td>防滑正品休闲鞋</td><td>12</td><td>¥568</td><td><inputtype="button"value="删除"onclick="delRow(this)"/><inputtype="button"value="修改"onclick="updateRow(this)"/></td></tr><tr><td>抗疲劳项圈</td><td>5</td><td>¥49</td><td><inputtype="button"value="删除"onclick="delRow(this)"/><inputtype="button"value="修改"></td></tr><tr><tdcolspan="4"><inputtype="button"value="增加订单"onclick="addRow()"/></td></tr></table><inputtype="button"value="显示第二行第二个单元格的内容"onclick="show()"></div><p>该内容为作者原创,转载请声明,违规必究!</p></body><scripttype="text/javascript"defer>function$(id){returndocument.getElementById(id);}functionaddRow(){varnewRow=$("myTable").insertRow($("myTable").rows.length-1);varcol1=newRow.insertCell(0);col1.innerHTML="幸福从天而降";varcol2=newRow.insertCell(1);col2.innerHTML="50";varcol3=newRow.insertCell(2);col3.innerHTML="¥18.5";varcol4=newRow.insertCell(3);col4.innerHTML="<inputtype='button'value='修改'/><inputtype='button'value='删除'onclick='delRow(this)'/>";}functiondelRow(v){varindex=v.parentNode.parentNode.rowIndex;$("myTable").deleteRow(index);}functionshow(){varcol=$("myTable").rows[1].cells[1].innerHTML;alert(col);}functionupdateRow(v){varrow=v.parentNode.parentNode;row.cells[0].lastNode;for(vari=0;i<row.cells.length-1;i++){row.cells[i].setAttribute("type","text");}}</script></html>