问答详情
源自:3-4 jQuery的属性与样式之增加样式.addClass()

.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。有没人发现这个问题?

 

提问者:慕粉wz 2016-11-23 14:29

个回答

  • qq_羽之翼_0
    2017-05-09 13:21:34

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

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

    return 'par_' + n;

    });

    开始这个地方那个起作用


  • 肖炎
    2016-12-01 15:14:42

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

  • stone310
    2016-11-23 15:03:05

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


  • alvwood
    2016-11-23 14:54:55

    不明白