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 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
Sep 06 Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
第一次接触神奇的Bootstrap基础排版
Jul 26 Javascript
jQuery实现自动输入email、时间和域名的方法
Aug 24 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
Jan 19 Javascript
jQuery+pjax简单示例汇总
Apr 21 jQuery
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 Javascript
jquery实现上传文件进度条
Mar 26 jQuery
vue+Element-ui前端实现分页效果
Nov 15 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后退一页表单内容保存实现方法
2012/06/17 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
js中this对象用法分析
2018/01/05 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
通过实例学习React中事件节流防抖
2019/06/17 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python简单实现刷新智联简历
2016/03/30 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python中web框架的自定义创建
2019/09/08 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
中文教师求职信
2014/02/22 职场文书
秘书英文求职信
2014/04/16 职场文书
安全目标责任书
2014/07/22 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL