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 prototype对象的属性说明
Mar 13 Javascript
将string解析为json的几种方式小结
Nov 11 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
Sep 05 Javascript
js图片轮播插件的封装
Jul 21 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
Antd的table组件表格的序号自增操作
Oct 27 Javascript
JavaScript实现瀑布流布局的3种方式
Dec 27 Javascript
Vite和Vue CLI的优劣
Jan 30 Vue.js
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 VS ASP
2006/10/09 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
Python实用日期时间处理方法汇总
2015/05/09 Python
python与php实现分割文件代码
2017/03/06 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
自我鉴定思想方面
2013/10/07 职场文书
客服工作职责
2013/12/11 职场文书
小学生自我评价范文
2014/01/25 职场文书
护士毕业实习感言
2014/03/05 职场文书
升学宴主持词
2014/04/02 职场文书
活动倡议书范文
2014/05/13 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
违纪学生保证书
2015/02/27 职场文书
运动会班级前导词
2015/07/20 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL