.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。有没人发现这个问题?
应该是这样的吧,前面的那个addclass相当于是一个引线作用,就是告诉你这里用的是addclass方法而不是其他的,$(this).addClass('imoocClass'),到了这里就已经加class完成了,也没有什么需要返回的值,所以前面的addclass加了一个空的值,$('div').addclass(null),因此起作用得是第二个addclass
而这个是$('p').addClass(function(n){
return 'par_' + n;
});
开始这个地方那个起作用
有道理 这样就比较明白了, 我还想问一个问题,function 的形参 这两个是固定的吗 ,还是自己定义的名字 ,?index这个怎么没用到呀
有道理!W3CSCHOOL也是如此,用return,http://www.w3school.com.cn/jquery/attributes_addclass.asp
不明白