$('div').addClass(function(index,className){
if(-1 !== className.indexOf('imooc')){
//this指向匹配元素集合中的当前元素
$(this).addClass('imoocClass')
}
})
这里indexOf代表的是imooc首次出现的位置!那么其中形参index className是什么意思?还有className.indexOf()这里面的className是指$('div')这个对象集中的所有className的值的集合吗? 注释中还说this指当前元素,我的理解是第一次出现imooc的元素,同时给这个元素添加一个类名 可是效果为什么会有两个背景色为红色的盒子?
选择器$('div')是获取到所有div标签对象,然后对每个标签对象执行.addClass(function(index,className){……}),也就是查看每个div标签的className是否包含'imooc',如果包含,就再为这个标签增加一个值为'imoocClass'的新className。$(this)在这里是当前正在查看的div标签。
if(-1 !== className.indexOf('imooc'))意思是找到class名中有 imooc的,均给该元素添加新类 imoocClass,
并不是第一imooc出现 而是所有含有imooc。如果出现两个 ,说明你的html中有两个元素均有imooc的class名