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查找法实现当前栏目的高亮显示的代码
Nov 24 Javascript
JavaScript 继承使用分析
May 12 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 Javascript
js 实现省市区三级联动菜单效果
Feb 20 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
AngularJS动态菜单操作指令
Apr 25 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
Jun 25 Javascript
基于vue组件实现猜数字游戏
May 28 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
JavaScript装饰者模式原理与用法实例详解
Mar 09 Javascript
javaScript Array api梳理
Mar 31 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
xml转json的js代码
2012/08/28 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
Python中的类学习笔记
2014/09/23 Python
django反向解析和正向解析的方式
2018/06/05 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
酒店总经理岗位职责
2014/03/17 职场文书
小学生操行评语
2014/04/22 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
公司出差管理制度范本
2015/08/05 职场文书
请病假条范文
2015/08/17 职场文书
班委竞选稿范文
2015/11/21 职场文书
小学音乐课教学反思
2016/02/18 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js