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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
flash 得到自身url参数的代码
Nov 15 Javascript
document.forms[].submit()使用介绍
Feb 19 Javascript
javascript里使用php代码实例
Dec 13 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
javascript简单写的判断电话号码实例
May 24 Javascript
Angular2的管道Pipe的使用方法
Nov 07 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
浅析Node.js非对称加密方法
Jan 29 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
Apr 27 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 jQuery
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 和 HTML
2006/10/09 PHP
为PHP初学者的8点有效建议
2010/11/20 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
Python实现从N个数中找到最大的K个数
2020/04/02 Python
python中get和post有什么区别
2020/06/19 Python
Python Map 函数的使用
2020/08/28 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
优秀党支部事迹材料
2014/01/14 职场文书
军训感想500字
2014/02/20 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
副总经理岗位职责
2014/03/16 职场文书
车辆工程专业求职信
2014/06/14 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL