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 克隆数组最简单的方法
Feb 12 Javascript
JavaScript在多浏览器下for循环的使用方法
Nov 07 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
jquery实现图片平滑滚动详解
Mar 22 jQuery
Angular4表单验证代码详解
Sep 03 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 jQuery
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
Oct 25 Javascript
了解JavaScript表单操作和表单域
May 27 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 Javascript
react中props 的使用及进行限制的方法
Apr 28 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
php遍历CSV类实例
2015/04/14 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
php文件上传类的分享
2017/07/06 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
python实现堆排序的实例讲解
2020/02/21 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
高中生活自我鉴定
2014/01/18 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
老兵退伍标语
2014/10/07 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis