关于jquery里用each()实现切换效果的问题

来源:1-5 编程练习

Ewall_

2015-05-27 15:06

怎么用each()实现for()循环里的选项开切换效果

写回答 关注

2回答

  • 不断滴自我催眠
    2015-05-27 16:51:20
    已采纳

    $("ul") 是获取所有ul标签 得到的是个数组 而不是对应p标签下的ul

    1. 给每个ul加id来标识 通过index判断 处理哪个

    2. 或者如下:


    3. $(function (){
              $(".menu p").each(function (index){
                  $(this).bind("click",function (){//这里有问题
                      $($("ul")[index]).slideToggle("slow");
                  })
              })
          })

    不断滴自我催... 回复Ewall_

    1.数组.each(回调方法); 2. $.each(数组,回调方法) 你可以看看源码就知道 他就是封装了下循环,源码里也是用for来实现的。循环数组里的每一个项,然后每项都调用回调行数(即上面的function (index){ $(this).bind("click",function (){//这里有问题 $($("ul")[index]).slideToggle("slow"); }))

    2015-05-28 09:42:09

    共 2 条回复 >

  • 不断滴自我催眠
    2015-05-28 09:43:10
    //源码如下
    each: function( obj, callback, args ) {
    		var value,
    			i = 0,
    			length = obj.length,
    			isArray = isArraylike( obj );
    
    		if ( args ) {
    			if ( isArray ) {
    				for ( ; i < length; i++ ) {
    					value = callback.apply( obj[ i ], args );
    
    					if ( value === false ) {
    						break;
    					}
    				}
    			} else {
    				for ( i in obj ) {
    					value = callback.apply( obj[ i ], args );
    
    					if ( value === false ) {
    						break;
    					}
    				}
    			}
    
    		// A special, fast, case for the most common use of each
    		} else {
    			if ( isArray ) {
    				for ( ; i < length; i++ ) {
    					value = callback.call( obj[ i ], i, obj[ i ] );
    
    					if ( value === false ) {
    						break;
    					}
    				}
    			} else {
    				for ( i in obj ) {
    					value = callback.call( obj[ i ], i, obj[ i ] );
    
    					if ( value === false ) {
    						break;
    					}
    				}
    			}
    		}
    
    		return obj;
    	},


Tab选项卡切换效果

本课程详细介绍网页页面中最流行常用的tab切换效果

65465 学习 · 533 问题

查看课程

相似问题