什么是DOM?
http://www.runoob.com/htmldom/htmldom-access.html
通过 JavaScript,您可以重构整个HTML文档。您可以添加、移除、改变或重排页面上的项目。要改变页面的某个东西,JavaScript就需要对HTML文档中所有元素进行访问的入口。这个入口,连同对HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。在 1998 年,W3C 发布了第一级的 DOM 规范。这个规范允许访问和操作 HTML 页面中的每一个单独的元素。所有的浏览器都执行了这个标准,因此,DOM 的兼容性问题也几乎难觅踪影了。DOM 可被 JavaScript 用来读取、改变 HTML、XHTML 以及 XML 文档。
1.获取元素
<script>
//根据id获取元素,因为id是唯一的,所以只返回一个dom对象
var temp1 = document.getElementById('btnShow');
//name是可以重复的,所以返回一个dom对象数组
var temp2 = document.getElementsByName('btnShow');
//访问属性
temp1.value = '显示当前时间';
2.事件
1 在元素上注册事件 2 <input type="button" id="btnShow1" value="显示1" onclick="alert(this.value);"/> 3 <br/> 4 动态注册: 5 <input type="button" id="btnShow2" value="显示2"/> 6 7 <script> 8 //推荐使用这种方式注册事件 9 //好处:实现了代码分离(html与js);可以使用this 10 document.getElementById('btnShow2').onclick= function() { 11 alert(this.value); 12 } 13 </script>
3.加载完成事件
1 <script> 2 //页面中的所有节点加载完成后,会触发此事件 3 onload = function () { 4 //当节点存在后,找到并注册点击事件 5 document.getElementById('span1').onclick = function() { 6 alert('ok'); 7 }; 8 }; 9 </script>
4.动态操作元素
1 <script> 2 onload = function() { 3 //追加图片 4 document.getElementById('btnImg').onclick = function() { 5 //创建img对象 6 var img = document.createElement('img'); 7 //通过属性src指定要显示的图片 8 img.src = 'images/bird1.png'; 9 //在div中追加图片对象 10 document.getElementById('divContainer').appendChild(img); 11 }; 12 //追加文本框 13 document.getElementById('btnText').onclick = function() { 14 //创建input对象 15 var input = document.createElement('input'); 16 //设置属性 17 input.type = "text"; 18 //加入div中 19 document.getElementById('divContainer').appendChild(input); 20 }; 21 //追加超链接 22 document.getElementById('btnA').onclick = function() { 23 //创建a对象 24 var a = document.createElement('a'); 25 //设置属性 26 a.href = '10Event.html'; 27 a.innerHTML = '点击显示'; 28 //加入div中 29 document.getElementById('divContainer').appendChild(a); 30 }; 31 32 //删除所有元素 33 document.getElementById('btnRemove').onclick = function() { 34 //获取所有子元素 35 var childs = document.getElementById('divContainer').childNodes; 36 //遍历子元素,逐个删除 37 for (var i = childs.length-1; i >=0; i--) { 38 document.getElementById('divContainer').removeChild(childs[i]); 39 } 40 }; 41 }; 42 </script>