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 相关文章推荐
javascript 得到文件后缀名的思路及实现
May 09 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
函数四种调用模式以及其中的this指向
Jan 16 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 Javascript
详解vue express启动数据服务
Jul 05 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
Sep 22 Javascript
AngularJS中下拉框的基本用法示例
Oct 11 Javascript
基于vue-draggable 实现三级拖动排序效果
Jan 10 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
用Flash图形化数据(一)
2006/10/09 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php递归创建目录的方法
2015/02/02 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
Python中的zipfile模块使用详解
2015/06/25 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
技校毕业生的自我评价
2013/12/27 职场文书
千元咖啡店的创业计划书范文
2013/12/29 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
保送生自荐信范文
2015/03/26 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
python中print格式化输出的问题
2021/04/16 Python
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技