星星3394050
2016-08-27 13:38
$("div").addClass(function(index,className) {
if(-1 !== className.indexOf('imooc')){
$(this).addClass('imoocClass')
}
});
function的参数:index和className好像后面都没有出现,那还要参数干嘛?
还有这句className.indexOf('imooc')
className都不是一个对象,怎么可以怎么用?
不是应该先定义变量么? className=$('div')[i].className 然后再用for循环遍历一下么?
$("div").addClass(function(index,className)这句话里面的index只是索引,根据前面的div来取值0,1,2....className是div以前的类名。w3school上面有讲到的。至于indexOf,w3school里面的JavaScript部分讲到可以str.indexOf("world")来判断world是在str字符串出现的位置。
className是js里的class属性名,是专有的,并不是封装的。
addClass(function(index,className){
});其中的两个参数index,className,前者表示索引,后者是类名,但是两个都是形参(个人理解)你可以换成i,classN传进去一样有用,应该是jq内部封装好的,一定要传两个参数进去,不然就会报错。 if(-1 !== className.indexOf('imooc'))还有这句,这里的className和function(index,className)第二个参数对应,内部是有封装的,把你传进来的参数className定义成对象,所以可以直接拿来用了。新手理解,欢迎指正交流
后面用到了className了, if(-1 !== className.indexOf('imooc'))这不就用到了className啦?而且要想用className,必须在前面有index参数,如果没有会默认是index,而不是className。className值得是div当前的类的名称。
indexof这个方法在字符串就可以使用的,
jQuery基础 (一)—样式篇
217509 学习 · 1218 问题
相似问题