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

.addClass( function(index, currentClass) ) 函数的返回值

.addClass( function(index, currentClass) ) : 这个函数返回一个或更多用空格隔开的要增加的样式名

$("div").addClass(function(index,className) {
            //找到类名中包含了imooc的元素
            if(-1 !== className.indexOf('imooc')){
                //this指向匹配元素集合中的当前元素
                $(this).addClass('imoocClass')
            }
        });

例子中的的$(this).addClass('imoocClass')

我觉得应该是 return  ' imoocClass' ; 才更加规范。虽然两者都起到了添加类的作用。

但大家觉得外面有个addClass,里面再写个addClass不是很诡异吗。如果仅仅是循环,不如用个foreach代替,里面再addClass。有没人发现这个问题?

 

正在回答

4 回答

应该是这样的吧,前面的那个addclass相当于是一个引线作用,就是告诉你这里用的是addclass方法而不是其他的,$(this).addClass('imoocClass'),到了这里就已经加class完成了,也没有什么需要返回的值,所以前面的addclass加了一个空的值,$('div').addclass(null),因此起作用得是第二个addclass

而这个是$('p').addClass(function(n){

return 'par_' + n;

});

开始这个地方那个起作用


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

有道理 这样就比较明白了, 我还想问一个问题,function  的形参  这两个是固定的吗  ,还是自己定义的名字 ,?index这个怎么没用到呀

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

乱也

可选,可不选。
2017-02-18 回复 有任何疑惑可以回复我~
#2

夜莺z

index是获取到的$("div")(一个数组)的索引值,必须要有
2017-03-26 回复 有任何疑惑可以回复我~
#3

夜莺z

问w3school里面例子,是用n来表示: $('p').addClass(function(n){ return 'par_' + n; });
2017-03-26 回复 有任何疑惑可以回复我~

有道理!W3CSCHOOL也是如此,用return,http://www.w3school.com.cn/jquery/attributes_addclass.asp


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

不明白

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

举报

0/150
提交
取消

.addClass( function(index, currentClass) ) 函数的返回值

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