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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
javascript中字符串拼接需注意的问题
Jul 13 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
jquery对元素拖动排序示例
Jan 16 Javascript
Javascript中的高阶函数介绍
Mar 15 Javascript
移动端js触摸事件详解
Sep 18 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
Vue.js递归组件实现组织架构树和选人功能
Jul 04 Javascript
JavaScript实现横版菜单栏
Mar 17 Javascript
js绘制一条直线并旋转45度
Aug 21 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
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
学生意外伤害赔偿协议书
2014/09/17 职场文书
2014年小学工作总结
2014/11/26 职场文书
金秋助学感谢信
2015/01/21 职场文书
北京颐和园导游词
2015/01/30 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
javaScript Array api梳理
2021/03/31 Javascript
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技