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 相关文章推荐
判断js对象是否拥有某一个属性的js代码
Aug 16 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
JavaScript中的console.profile()函数详细介绍
Dec 29 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
jquery动感漂浮导航菜单代码分享
Apr 15 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 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中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python绘制3D图形
2018/05/03 Python
python实现图片九宫格分割
2021/03/07 Python
深入了解Django View(视图系统)
2019/07/23 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
python写一个随机点名软件的实例
2019/11/28 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
高中生职业规划范文
2014/03/09 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
安全教育观后感
2015/06/17 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis