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 写类方式之七
Jul 05 Javascript
JavaScript中的noscript元素属性位置及作用介绍
Apr 11 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
May 07 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
Aug 26 Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 Javascript
node.js中的fs.chownSync方法使用说明
Dec 16 Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
Jun 12 Javascript
浅谈js中对象的使用
Aug 11 Javascript
JavaScript数组的5种迭代方法
Sep 29 Javascript
JS拖拽排序插件Sortable.js用法实例分析
Feb 20 Javascript
微信小程序实现的图片保存功能示例
Apr 24 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 eval函数一句话木马代码
2015/05/21 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
webpack3之loader全解析
2017/10/26 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python中title()方法的使用简介
2015/05/20 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
应届生法律顾问求职信
2013/11/19 职场文书
《散步》教学反思
2014/03/02 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
学校校庆演讲稿
2014/05/22 职场文书
结对共建协议书
2014/08/20 职场文书
优秀员工自荐书
2015/03/06 职场文书
美容院员工规章制度
2015/08/05 职场文书
2019军训心得体会
2019/06/27 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS