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 相关文章推荐
jquery.cookie用法详细解析
Dec 18 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
JavaScript极简入门教程(二):对象和函数
Oct 25 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
jquery获取img的src值的简单实例
May 17 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
May 14 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
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
vue 组件简介
2020/07/31 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Python实现按中文排序的方法示例
2018/04/25 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
自我鉴定 电子商务专业
2014/01/30 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
文明礼貌主题班会
2015/08/14 职场文书
git stash(储藏)的用法总结
2022/06/25 Servers