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 相关文章推荐
IE autocomplete internet explorer's autocomplete
Jun 30 Javascript
jQuery对象与DOM对象之间的转换方法
Apr 15 Javascript
javascript温习的一些笔记 基础常用知识小结
Jun 22 Javascript
JS中操作JSON总结
Dec 06 Javascript
jquery 遍历数组 each 方法详解
May 25 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
微信小程序日期时间选择器使用方法
Feb 01 Javascript
Vue基本使用之对象提供的属性功能
Apr 30 Javascript
Vue微信公众号网页分享的示例代码
May 28 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
JS倒计时两种实现方式代码实例
Jul 27 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 操作文件的一些FAQ总结
2009/02/12 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
骨干教师培训方案
2014/05/06 职场文书
社区党建工作方案
2014/06/10 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python
python神经网络 使用Keras构建RNN训练
2022/05/04 Python
MySQL优化之慢日志查询
2022/06/10 MySQL