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 相关文章推荐
学习YUI.Ext 第三天
Mar 10 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
Dec 17 Javascript
Highcharts 非常实用的Javascript统计图demo示例
Jul 03 Javascript
鼠标拖动实现DIV排序示例代码
Oct 14 Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
用js设置下拉框为只读的小技巧
Apr 10 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
js使用post 方式打开新窗口
Feb 26 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
Mar 20 Javascript
Javascript Worker子线程代码实例
Feb 20 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 24 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
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
如何提高数据访问速度
2016/12/26 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
python中kmeans聚类实现代码
2018/02/23 Python
Python通过format函数格式化显示值
2020/10/17 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
什么是属性访问器
2015/10/26 面试题
大学生饮食配送创业计划书
2014/01/04 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
职工运动会邀请函
2014/02/02 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
建筑结构施工求职信
2014/07/11 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
六年级学生评语大全
2014/12/26 职场文书
先进事迹材料范文
2014/12/29 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
git中cherry-pick命令的使用教程
2022/06/25 Servers
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android