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

if(-1 !== className.indexOf('imooc')){}为什么是-1啊???

<!DOCTYPE html>

<html>


<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title></title>

    <style>

    .left,

    .right {

        width: 300px;

        height: 120px;

    }

    

    .left div,

    .right div {

        width: 100px;

        height: 90px;

        padding: 5px;

        margin: 5px;

        float: left;

        border: 1px solid #ccc;

    }

        

    .newClass{

        background: #bbffaa;

    }


    .imoocClass{

        background: red;

    }


    </style>

    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

</head>


<body>

    <h2>.addClss()方法</h2>

    <div class="left">

        <div class="aaron">

            <p>newClass</p>

        </div>

        <div class="aaron">

            <p>newClass</p>

        </div>

    </div>

    <div class="right">

        <div class="aa bb imooc">

            <article>

                <p>imoocClass</p>

            </article>

        </div>

        <div class="bb cc imooc ">

            <article>

                <p>imoocClass</p>

            </article>

        </div>

    </div>


    <script type="text/javascript"> 

        //class=left下div元素增加一个新的样式,增加背景颜色

        $('.left div').addClass('newClass')

    </script>


    <script type="text/javascript"> 

    

        //通过className(fucntion)方法

        //这个函数返回一个或更多用空格隔开的要增加的样式名。

        //接收index 参数表示元素在匹配集合中的索引位置和html 参数表示元素上原来的 HTML 内容


        //找到所有的div,然后通过addClass设置颜色,根据返回的className的判断,

        $("div").addClass(function(index,className) {


            //找到类名中包含了imooc的元素

            if(-1 !== className.indexOf('imooc')){

                //this指向匹配元素集合中的当前元素

                $(this).addClass('imoocClass')

            }

        });

    </script>




</body>


</html>

  if(-1 !== className.indexOf('imooc')){}为什么是-1啊???

正在回答

3 回答

$("div")是获取所有的div,然后通过函数进行判断,如果类名包含imooc的元素,为其追加类名啊

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

慕仰6690464 提问者

哦哦,懂了,谢谢哈。。。
2016-03-15 回复 有任何疑惑可以回复我~
#2

小季乐乐4412490

我再详细补充一下:indexOf这个方法如果找到就返回1,如果找不到就返回-1,使用if判断如果className.indexOf('imooc')不等于-1就找到了,就添加样式
2019-03-01 回复 有任何疑惑可以回复我~

如果要检索的字符串值没有出现,则该方法返回就用 -1

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

.indexOf()方法是用来检验是否包含该字符串的,等于-1就是不包含imooc,反之就是包含imooc字符串被

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

慕仰6690464 提问者

$("div").addClass(function(index,className) { //找到类名中包含了imooc的元素 if(-1 !== className.indexOf('imooc')){ //this指向匹配元素集合中的当前元素 $(this).addClass('imoocClass') } }); 那function()这个函数返回了什么值,还有一开始为啥要用$("div").啊?
2016-03-15 回复 有任何疑惑可以回复我~
#2

一切太突然3125650

同问,还有$("div").addClass(function(index,className) 后面的 className 什么作用,什么意思?
2016-05-26 回复 有任何疑惑可以回复我~
#3

4386462

为什么不用-2 -3 呢
2016-11-26 回复 有任何疑惑可以回复我~
#4

qq_一米阳光_94 回复 4386462

跟我想的一样找到答案了吗,同学知道了的话跟我说说
2017-09-19 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

if(-1 !== className.indexOf('imooc')){}为什么是-1啊???

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