为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

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

  2. 或者如下:


  3. $(function (){
            $(".menu p").each(function (index){
                $(this).bind("click",function (){//这里有问题
                    $($("ul")[index]).slideToggle("slow");
                })
            })
        })
1 回复 有任何疑惑可以回复我~
#1

Ewall_ 提问者

首先感谢,然后能讲下each()的用法吗,就你的理解而言。。。
2015-05-27 回复 有任何疑惑可以回复我~
#2

不断滴自我催眠 回复 Ewall_ 提问者

1.数组.each(回调方法); 2. $.each(数组,回调方法) 你可以看看源码就知道 他就是封装了下循环,源码里也是用for来实现的。循环数组里的每一个项,然后每项都调用回调行数(即上面的function (index){ $(this).bind("click",function (){//这里有问题 $($("ul")[index]).slideToggle("slow"); }))
2015-05-28 回复 有任何疑惑可以回复我~
//源码如下
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;
	},


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信