JS 排他思想

排他思想

排他思想就是先排除所有元素(包括自身),然后再单独设置自身。

排他思想案例

总代码

下面是一段“隔行变色”的总代码,代码中有用到排他思想。


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            list-style: none;
        }
        .box {
            width: 300px;
            margin: 100px auto;
        }
        li {
            height: 30px;
            font: 400 15px/30px "simsun";
        }
        .current {
            background-color: red!important;
        }
    </style>
</head>
<body>

<div class="box">
    <ul>
        <li>上证指数   3651.77    +   9.30</li>
        <li>深证成指   13139.12   +   110.82</li>
        <li>恒生指数   21830.02   +   38.34</li>
        <li>腾安指数   2696.29    +   23.62</li>
        <li>上证指数   3651.77    +   9.30</li>
        <li>深证成指   13139.12   +   110.82</li>
        <li>恒生指数   21830.02   +   38.34</li>
        <li>腾安指数   2696.29    +   23.62</li>
    </ul>

</div>

<script>
    //需求:隔行变色,鼠标放上去,还变色。
    //步骤:
    //(隔行变色)
    //1.获取事件源
    //2.绑定事件
    //3.书写事件驱动程序
        //(1).鼠标放在谁上面,谁更改标签中class属性值(排他思想)

    //1.获取事件源
    var arrLi = document.getElementsByTagName("li");

        //这个for循环是隔行变色(遍历数组)
    for(var i=0; i<arrLi.length; i++) {
        if (i % 2 == 0) {
            arrLi[i].style.backgroundColor = "#ccc";
        }
//        else{
//            arrLi[i].style.backgroundColor = "#333";
//        }

    }

    //这个for循环是给li绑定事件用的
    for(var i=0; i<arrLi.length; i++){
        //2.绑定事件
        arrLi[i].onmouseover = function () {

            //这个for循环是给li清楚类名用的(排他思想,for)
            for(var j=0; j<arrLi.length; j++){
                arrLi[j].className = "";
//              alert(j);
            }

            this.className = "current";
        }
    }
    //3.书写事件驱动程序
    //(1).鼠标放在谁上面,谁更改标签中class属性值
</script>

</body>
</html>

排他思想讲解

上述总代码中运用到排他思想的是

            for(var j=0; j<arrLi.length; j++){
                arrLi[j].className = "";
            }

            this.className = "current";

这里先用for循环把数组arrli中的样式清空,然后用this单独给这个元素附加样式,这样就可以在每次执行这个函数时,先取消上次执行这个函数给的样式,保证只有一个元素(本元素)得到样式。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值