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 相关文章推荐
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
JQuery与iframe交互实现代码
Dec 24 Javascript
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
Javascript引用指针使用介绍
Nov 07 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
JavaScript中的Math.LOG2E属性使用详解
Jun 14 Javascript
jQuery进行组件开发完整实例
Dec 15 Javascript
JavaScript数据结构与算法之栈与队列
Jan 29 Javascript
js实现瀑布流效果(自动生成新的内容)
Mar 16 Javascript
react.js CMS 删除功能的实现方法
Apr 17 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
使用Bootstrap做一个朝代历史表
Dec 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
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP 微信支付类 demo
2015/11/30 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
JavaScript 大数据相加的问题
2011/08/03 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
python3 简单实现组合设计模式
2020/07/02 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
个人求职信范文分享
2013/12/13 职场文书
车间操作工岗位职责
2013/12/19 职场文书
农村婚礼证婚词
2014/01/10 职场文书
查摆剖析材料范文
2014/09/30 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏
SQL Server中使用表变量和临时表
2022/05/20 SQL Server
Golang gRPC HTTP协议转换示例
2022/06/16 Golang