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

来源:3-4 jQuery的属性与样式之增加样式.addClass()

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

写回答 关注

4回答

  • qq_梦里_0
    2016-08-31 15:03:29
    已采纳

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

    星星3394...

    非常感谢!

    2016-08-31 22:30:58

    共 1 条回复 >

  • qq_迸发激情_0
    2017-11-14 11:43:45

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

  • 大块吃肉188
    2016-09-11 09:19:28

    addClass(function(index,className){

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

  • qq_唯愛沵_03419990
    2016-08-27 15:03:14
    1. 后面用到了className了,  if(-1 !== className.indexOf('imooc'))这不就用到了className啦?而且要想用className,必须在前面有index参数,如果没有会默认是index,而不是className。className值得是div当前的类的名称。

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

    星星3394...

    我觉得className是jquery封装好的参数 因而不用获取就可以直接使用了

    2016-08-27 15:48:16

    共 1 条回复 >

jQuery基础 (一)—样式篇

jQuery初入开启样式修炼,体验万能的jQuery样式集搭建网站布局

217509 学习 · 1218 问题

查看课程

相似问题