javascript针对DOM的应用分析(四)


Posted in Javascript onApril 15, 2012

下面我就写几个给大家看看
一,点击传参方法

<script> 
function tab(dom){ 
var list = document.getElementById("list").getElementsByTagName("li"); 
var con = document.getElementById("con").getElementsByTagName("div"); 
for(var i=0;i<list.length;i++){ 
if(list==dom){ 
list.className = "on"; 
con.style.display = "block"; 
} 
else{ 
list.className=""; 
con.style.display="none"; 
} 
} 
} 
</script> 
<div id="list"> 
<ul> 
<li class="on">1</li> 
<li>2</li> 
<li>3</li> 
<li>4</li> 
</ul> 
</div> 
<div id="con"> 
<div style="display:block;">111111</div> 
<div style="display:none;">222222</div> 
<div style="display:none;">333333</div> 
<div style="display:none;">444444</div> 
</div>

我解释一下
var list = document.getElementById("list").getElementsByTagName("li");
var con = document.getElementById("con").getElementsByTagName("div");
获取dom元素,这个不用说了吧。写什么效果第一件事都是获取元素
for(var i=0;i<list.length;i++){ 
if(list==dom){ 
list.className = "on"; 
con.style.display = "block"; 
} 
else{ 
list.className=""; 
con.style.display="none"; 
}

遍历一下所有的li元素,找到和传进来的dom一样的东西,然后把他的class设置为on,并且把相对应的div给显示出来,其他的就全部把className设置为空,并且把对应的div给隐藏。
大概就是这样。但是大家肯定就都发现了这样的写法的缺点,就是每个li都要设置一个onclick时间传入它自己。这样有点违反了结构与表现相分离的道理。所以我们就换种写法
二,直接写入鼠标事件方法
<script> 
function tab(){ 
var list = document.getElementById("list").getElementsByTagName("li"); 
var con = document.getElementById("con").getElementsByTagName("div"); 
for(var i = 0;i<list.length;i++) 
{ 
list.onclick=function(){ 
for(var i=0;i<list.length;i++){ 
if(list==this){ 
list.className = "on"; 
con.style.display = "block"; 
} 
else{ 
list.className=""; 
con.style.display="none"; 
} 
} 
} 
} 
} 
window.onload=function(){tab();} 
</script> 
<div id="list"> 
<ul> 
<li class="on">1</li> 
<li>2</li> 
<li>3</li> 
<li>4</li> 
</ul> 
</div> 
<div id="con"> 
<div style="display:block;">111111</div> 
<div style="display:none;">222222</div> 
<div style="display:none;">333333</div> 
<div style="display:none;">444444</div> 
</div>

只是简单的改动一下就可以了,因为在JS中有这些方法可以用比如onclick,onmouseover等等,但是用的时候我要先把所有的要用这个事件的元素都遍历一下,如果那个被点击就会传入一个this,我们只需要像第一种方法一样判断一下list是不是和这个this相同,然后下面的操作和第一种方法一样
(这样两种方法都是比较简单的写法,在JS里还有一些比较高级复杂的写法,但是用到的思想和这两种写法大多一样。)
好了就到这里,建议大家可以用这种方法写一个图片切换效果,我想应该很简单吧

下章继续说效果

Javascript 相关文章推荐
利用javascript中的call实现继承
Jan 22 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
Jul 17 Javascript
初试jQuery EasyUI 使用介绍
Apr 01 Javascript
jquery实现拖拽调整Div大小
Jan 30 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
React.js入门学习第一篇
Mar 30 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
js html实现计算器功能
Nov 13 Javascript
JS运算符简单用法示例
Jan 19 Javascript
详解Vue的组件中data选项为什么必须是函数
Aug 17 Javascript
javascript针对DOM的应用分析(三)
Apr 15 #Javascript
javascript针对DOM的应用分析(二)
Apr 15 #Javascript
javascript针对DOM的应用实例(一)
Apr 15 #Javascript
JavaScript中的null和undefined解析
Apr 14 #Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
Apr 14 #Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 #Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 #Javascript
You might like
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python制作简单的网页爬虫
2015/11/22 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
Python生成密码库功能示例
2017/05/23 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
django 多数据库及分库实现方式
2020/04/01 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
运动会表扬稿大全
2014/01/16 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
食品安全汇报材料
2014/08/18 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
公司借条范本
2015/05/25 职场文书
灵魂歌王观后感
2015/06/17 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书