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 鼠标拖动图标技术
Feb 07 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
Mar 15 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
分享Javascript实用方法二
Dec 13 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
js css+html实现简单的日历
Jul 14 Javascript
AngularJS实现注册表单验证功能
Oct 16 Javascript
对layui中的onevent 和event的使用详解
Sep 06 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
Vue如何清空对象
Mar 03 Vue.js
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程序员不应该忽略的3点
2015/10/09 PHP
Yii2单元测试用法示例
2016/11/12 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
基于jQuery的获取标签名的代码
2012/07/16 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
vue 如何使用递归组件
2020/10/23 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
基于Django的ModelForm组件(详解)
2017/12/07 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
介绍一下write命令
2012/09/24 面试题
幼儿园家长会邀请函
2014/01/15 职场文书
文明好少年事迹材料
2014/08/19 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android