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 相关文章推荐
从父页面读取和操作iframe中内容方法
Jul 25 Javascript
javascript parseInt与Number函数的区别
Jan 21 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
Jul 01 Javascript
详解JavaScript函数
Dec 01 Javascript
深入理解JS中的substr和substring
Apr 26 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 Javascript
小程序实现文字循环滚动动画
Jun 14 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
解析wamp5下虚拟机配置文档
2013/06/27 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
php实现两个数组相加的方法
2015/02/17 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
日期 时间js控件
2009/05/07 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
js实现抽奖效果
2017/03/27 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
js module大战
2019/04/19 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
浅谈Python的异常处理
2016/06/19 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
Python处理session的方法整理
2019/08/29 Python
基于Python测试程序是否有错误
2020/05/16 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
青春无悔演讲稿
2014/05/08 职场文书
数学系毕业生求职信
2014/05/29 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS