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

关于addClass() 里面function的参数问题

$("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循环遍历一下么?

正在回答

4 回答

$("div").addClass(function(index,className)这句话里面的index只是索引,根据前面的div来取值0,1,2....className是div以前的类名。w3school上面有讲到的。至于indexOf,w3school里面的JavaScript部分讲到可以str.indexOf("world")来判断world是在str字符串出现的位置。

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

星星3394050 提问者

非常感谢!
2016-08-31 回复 有任何疑惑可以回复我~

className是js里的class属性名,是专有的,并不是封装的。

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

addClass(function(index,className){

 });其中的两个参数index,className,前者表示索引,后者是类名,但是两个都是形参(个人理解)你可以换成i,classN传进去一样有用,应该是jq内部封装好的,一定要传两个参数进去,不然就会报错。 if(-1 !== className.indexOf('imooc'))还有这句,这里的className和function(index,className)第二个参数对应,内部是有封装的,把你传进来的参数className定义成对象,所以可以直接拿来用了。新手理解,欢迎指正交流

3 回复 有任何疑惑可以回复我~
  1. 后面用到了className了,  if(-1 !== className.indexOf('imooc'))这不就用到了className啦?而且要想用className,必须在前面有index参数,如果没有会默认是index,而不是className。className值得是div当前的类的名称。

  2. indexof这个方法在字符串就可以使用的,

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

星星3394050 提问者

我觉得className是jquery封装好的参数 因而不用获取就可以直接使用了
2016-08-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于addClass() 里面function的参数问题

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