JQuery中使用.each()遍历元素学习笔记


Posted in Javascript onNovember 08, 2014

今天写一个选项卡的时候,需要用到jquery中的.each(),通过获取each()中的index参数来获取li元素的编号,方便下面区块显示,在一个测试页面上写好了下面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

    <title>tab选项卡</title>

    <style type="text/css">

        ul,li{list-style: none;margin: 0px; padding: 0px;}

        li{float: left;width: 80px; height: 30px; background-color: #ccc; border: 2px solid #fff;text-align:center; line-height:30px;}

        #content{clear:left; width:336px; height: 180px; background-color: #999; color:white;}

        #content div{display: none}

        #content .consh{display: block;}

        #title .titsh{background-color: #999;border:2px solid #999; color:#fff}

    </style>

    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">

        $(function(){

            $("li").each(function(index){

                $(this).mouseover(function(){

                    $("#title .titsh").removeClass("titsh");

                    $("#content .consh").removeClass("consh");

                    $(this).addClass("titsh");

                    $("#content>div:eq("+index+")").addClass("consh");

                })

            })                

        })

    </script>

</head>

<body>

    <div id="tab">

        <div id="title">

            <ul>

                <li class="titsh">选项一</li>

                <li>选项二</li>

                <li>选项三</li>

                <li>选项四</li>

            </ul>

        </div>

        <div id="content">

            <div class="consh">内容一</div>

            <div>内容二</div>

            <div>内容三</div>

            <div>内容四</div>

    </div>

</div>

</body>

</html>

测试的结果是正常,后来在一个实际使用的页面中使用的时候,发现上面的li列表变动的时候,下面的div区块不跟着变动不同的区块,以为是css样式和实际使用的页面中其他的样式冲突了,将css选择器全部改成独有的之后,发现还是这个问题,于是判断应该是这里:

$("#title .titsh").removeClass("titsh");

$("#content .consh").removeClass("consh");

$(this).addClass("titsh");

$("#content>div:eq("+index+")").addClass("consh");

第一句,第二句取出样式的时候,没有问题,第三局给当前的li标签加上titsh的css样式也正常,就是最后一句 给通过div:eq(index)获取到的div区块加样式的时候失败。

于是我在:

$("li").each(function(index){

$(this).mouseover(function(){

这两句之间加了一个alert(index)弹窗,看看效果,发现有10几个li标签的索引值被alert出来,一想原来实际这个页面中还有其他的li标签,所以导致each()迭代出来的索引值和下面div区块的索引值对应不上,这样上面li标签变动的时候,下面的div区块就不跟着变了,于是我将js代码改了一下:

<script type="text/javascript">

    $(function(){

          $("#title ul li").each(function(index){

            $(this).click(function(){

              $("#title .titsh").removeClass("titsh");

              $("#content .consh").removeClass("consh");

              $(this).addClass("titsh");

              $("#content > div:eq("+index+")").addClass("consh");

            })

          })                

        })

</script>

给要用.each()迭代的li元素的选择器加了限制,让他只能找我选项卡中的li标签来each出索引值,问题解决,可以睡觉了!

Javascript 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
详解jQuery uploadify文件上传插件的使用方法
Dec 16 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
vue使用axios实现文件上传进度的实时更新详解
Dec 20 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
使用JavaScript计算前一天和后一天的思路详解
Dec 20 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 Javascript
JavaScript中如何调用Java方法
Sep 16 Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 #Javascript
jQuery遍历对象、数组、集合实例
Nov 08 #Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 #Javascript
JavaScript中使用typeof运算符需要注意的几个坑
Nov 08 #Javascript
JavaScript中判断整数的多种方法总结
Nov 08 #Javascript
JavaScript中判断整字类型最简洁的实现方法
Nov 08 #Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
Nov 08 #Javascript
You might like
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
javascript三元运算符用法实例
2015/04/16 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
Python实现全角半角转换的方法
2014/08/18 Python
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
值得收藏的10道python 面试题
2019/04/15 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
django数据库自动重连的方法实例
2019/07/21 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
品质主管的岗位职责
2013/12/04 职场文书
产品促销活动策划书
2014/01/15 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
2016春节慰问信范文
2015/03/25 职场文书
中秋联欢会主持词
2015/07/04 职场文书
小学副班长竞选稿
2015/11/21 职场文书