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 相关文章推荐
javascript打开新窗口同时关闭旧窗口
Jan 16 Javascript
JavaScript中判断对象类型的几种方法总结
Nov 11 Javascript
Javascript基础知识(一)核心基础语法与事件模型
Sep 29 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
jQuery对指定元素中指定字符串进行替换的方法
Mar 17 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
JavaScript 数据类型详解
Mar 13 Javascript
详解如何在Vue2中实现组件props双向绑定
Mar 29 Javascript
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 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
YII模块实现绑定二级域名的方法
2014/07/09 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
js实现表格字段排序
2014/02/19 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
Bootstrap Table从零开始
2017/06/30 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
python实现彩票系统
2020/06/28 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
小学生打架检讨书
2014/01/26 职场文书
优秀教师演讲稿
2014/05/06 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
小学教师师德整改措施
2014/09/29 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
放飞理想主题班会
2015/08/14 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL