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 相关文章推荐
[转]JS宝典学习笔记
Feb 07 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
Jan 03 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 Javascript
JavaScript实现简单动态表格
Dec 02 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
php 全文搜索和替换的实现代码
2008/07/29 PHP
php date()日期时间函数详解
2010/05/16 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
一文总结学习Python的14张思维导图
2017/10/17 Python
Python实现k-means算法
2018/02/23 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
python实现学生管理系统开发
2020/07/24 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
init进程的作用
2015/08/20 面试题
应届毕业生个人求职自荐信
2014/01/06 职场文书
个人道歉信大全
2019/04/11 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技