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 相关文章推荐
jquery弹出框的用法示例(一)
Aug 26 Javascript
ExtJS[Desktop]实现图标换行示例代码
Nov 17 Javascript
jQuery控制TR显示隐藏的几种方法
Jun 18 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
Feb 05 Javascript
微信小程序 template模板详解及实例代码
Mar 09 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
vue axios整合使用全攻略
May 24 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
记一次vue去除#问题处理经过小结
Jan 24 Javascript
微信小程序实现form表单本地储存数据
Jun 27 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
基于pear auth实现登录验证
2010/02/26 PHP
php时间戳转换的示例
2014/03/31 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
Vue 一键清空表单的实现方法
2020/02/07 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
python计算auc的方法
2020/09/09 Python
基于Python实现粒子滤波效果
2020/12/01 Python
python3中布局背景颜色代码分析
2020/12/01 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
小学班长竞选演讲稿
2014/04/24 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
80后婚前协议书范本
2014/10/24 职场文书
论文评审意见
2015/06/05 职场文书
关于mysql中string和number的转换问题
2022/06/14 MySQL