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 相关文章推荐
HTML node相关的一些资料整理
Jan 01 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
Js base64 加密解密介绍
Oct 11 Javascript
javascript中eval解析JSON字符串
Feb 27 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
在vue中,v-for的索引index在html中的使用方法
Mar 06 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
Vue中jsx不完全应用指南小结
Nov 01 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
vue中的循环对象属性和属性值用法
Sep 04 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连接SQLServer2005方法及代码
2013/12/26 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
Vue中使用sass实现换肤功能
2018/09/07 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
Python下线程之间的共享和释放示例
2015/05/04 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python如何实现远程方法调用
2020/08/07 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
函授本科毕业生自我鉴定
2013/10/16 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL