javascript DOM编程实例(智播客学习)


Posted in Javascript onNovember 23, 2009

并给我们讲解了很多关于如何去学习DOM的方法,觉得真的是受益匪浅啊.
下面就几个我觉得比较好的例子和大家分享一下。
1.二级连动下拉菜单(一级是省份,二级是城市,要求一级选中省份,二级城市对应出现)
步骤:1)基本框架(HTML):两个复选框,而第二个复选框里面开始应该是没有选项的,注意第一个下拉框会作为事件源,通过 onchange方法激发JavaScript中的功能实现部分。

<xmp> 
<select id="province" onchange="selCity()"> 
<option >--选择省份--</option> 
<option >北京</option> 
<option >天津</option> 
<option >湖北</option> 
<option >山东</option> 
<option >河北</option> 
</select> 
<select id="city"> 
<option>--选择城市--</option> 
</select> 
</xmp>

2)页面修饰不需要太多,只要让下拉菜单显示一个就好了
3)通过JavaScript来实现功能,我们要想在第一个下拉列表中选择省份,后面能直接显示他的城市,看到这种一对多对应关系,首先想到map集合这个容器,可是JavaScrip没有map集合,那我们就想到了数组这样一个容器,最后决定用二维数组来帮我我们实现这个功能。
<script type="text/javascript"> 
function selCity() 
{ 
var arr= [["--选择城市--"],["海淀区","朝阳区","东城区","西城区","宣武区"], 
["和平区","河北区","河东区","河西区","南开区"], 
["武汉","宜昌","孝感","襄樊","荆州"], 
["济南","青岛","烟台","威海","日照"], 
["石家庄","保定","张家口","廊坊","邯郸"]]; 
var selpNode = document.getElementById("province"); 
var selcNode = document.getElementById("city"); 
var citys = arr[selpNode.selectedIndex]; 
selcNode.options.length = 0; 
for(var x=0; x<citys.length; x++) 
{ 
var optNode = document.createElement("option"); 
optNode.innerText = citys[x]; 
selcNode.appendChild(optNode); 
} 
} 
</script>

小结:每次一定记得要将数组清空。
2.邮件列表
思想:1)首先想到整体框架,肯定会想到用表格来进行格式化,然后通过操作表格以及行和单元格这些节点来实现相关功能
2)css主要是对表格相关格式化,其次就是选中以及两行显示不一样的效果,通过动态修改className来实现
由于篇幅的关系,html以及css部分代码相对简单,就不献丑了。
3)JavaScript来实现各种不同功能,代码如下:
<script> 
var color =""; 
function getStyle() 
{ 
var tableNode =document.getElementsByTagName("table")[0]; 
var arr = tableNode.rows; 
for(var x = 0;x<arr.length;x++) 
{ 
if(x%2) 
arr[x].className = "one"; 
else 
arr[x].className = "two"; 
var tdNode0 = arr[x].cells[0]; 
tdNode0.align = "center"; 
arr[x].onmouseover = function() 
{ 
color = this.className;//将原有的值记录,一遍鼠标走后能回到原来的颜色 
this.className = "checked"; 
} 
arr[x].onmouseout = function() 
{ 
this.className = color; 
} 
} 
} 
//我们需要全选实现同样的功能,所以我们通过传值来区分是那个节点 
function allCheck(index) 
{ 
var allNode = document.getElementsByName("all")[index]; 
var checkNodes = document.getElementsByName("mail"); 
for(var x=0;x<checkNodes.length;x++) 
{ 
checkNodes[x].checked = allNode.checked; 
} 
} 
function checkBut(num) 
{ 
var mailNodes = document.getElementsByName("mail"); 
for(var x=0; x<mailNodes.length; x++) 
{ 
if(num>1) 
mailNodes[x].checked = !(mailNodes[x].checked);//将自己状态反向赋给自己实现反选功能 
else 
mailNodes[x].checked = num; 
} 
} 
function del() 
{ 
var b = window.confirm("确定要删除所选邮件吗?"); 
if(!b) 
return ; 
var mailNodes = document.getElementsByName("mail"); 
var arr = new Array(); 
var pos = 0; 
for(var x=0; x<mailNodes.length; x++) 
{ 
if(mailNodes[x].checked) 
{ 
var trNode = mailNodes[x].parentNode.parentNode; 
arr[pos++] = trNode; 
} 
} 
for(var x=0; x<arr.length; x++) 
{ 
arr[x].parentNode.removeChild(arr[x]); 
} 
getStyle(); 
} 
window.onload = getStyle; 
</script>
Javascript 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
详解JavaScript 中的 replace 方法
Jan 01 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
JavaScript学习笔记--常用的互动方法
Dec 07 Javascript
angular2 组件之间通过service互相传递的实例
Sep 30 Javascript
在Vue中使用icon 字体图标的方法
Jun 14 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
Aug 20 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 Javascript
传智播客学习之java 反射
Nov 22 #Javascript
Javascript 刷新全集常用代码
Nov 22 #Javascript
写出更好的JavaScript之undefined篇(上)
Nov 22 #Javascript
COM中获取JavaScript数组大小的代码
Nov 22 #Javascript
面向对象的编程思想在javascript中的运用上部
Nov 20 #Javascript
javascript 设置文本框中焦点的位置
Nov 20 #Javascript
ExtJS Grid使用SimpleStore、多选框的方法
Nov 20 #Javascript
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
php eval函数用法总结
2012/10/31 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
2017/06/07 PHP
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
详解javascript遍历方式
2015/11/11 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
python科学计算之narray对象用法
2019/11/25 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
Python面向对象实现方法总结
2020/08/12 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
致长跑运动员广播稿
2014/01/31 职场文书
新教师培训心得体会
2014/09/02 职场文书