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 相关文章推荐
Jquery上传插件 uploadify v3.1使用说明
Jun 18 Javascript
jQuery列表拖动排列具体实现
Nov 04 Javascript
js禁止回车提交表单的示例代码
Dec 23 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
Bootstrap 粘页脚效果
Mar 28 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
使用veloticy-ui生成文字动画效果
Feb 08 Javascript
nuxt 实现在其它js文件中使用store的方式
Nov 05 Javascript
Vue多选列表组件深入详解
Mar 02 Vue.js
传智播客学习之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优化需要注意的地方
2014/11/27 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
详解Python:面向对象编程
2019/04/10 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python视频按帧截取图片工具
2019/07/23 Python
Django模板语言 Tags使用详解
2019/09/09 Python
python双向链表原理与实现方法详解
2019/12/03 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
银行自荐信范文
2013/10/07 职场文书
中学生运动会入场词
2014/02/12 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
教师听课评语大全
2014/12/31 职场文书
小学教研工作总结2015
2015/05/13 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js