day04:自定义属性

一、列表隔行换色效果

<input type="button" value="隔行换色" id="btn">
<ul id="uu">
    <li>红旗</li>
    <li>五菱宏光</li>
    <li>奔驰</li>
    <li>兰博基尼</li>
    <li>哈弗</li>
    <li>奥拓</li>
    <li>奥迪</li>
    <li>悍马</li>
</ul>
<script src="publick.js"></script>
<script>
    // 需求:奇红偶黄
    my$("btn").onclick = function(){
        // 获取所有的li
        var list = my$("uu").getElementsByTagName("li");//集合--伪数组
        // 循环遍历
        for(var i = 0; i < list.length; i++){
            // 判断
            if(i % 2 == 0){//表示的是偶数(因为我们的下标是从0开始)
                list[i].style.backgroundColor = "red";
            }else{
                list[i].style.backgroundColor = "yellow";
            }
        }

    }
</script>

二、列表高亮显示

<style>
    ul{
        list-style: none;
        cursor: pointer;
    }
</style>
<ul>
    <li>金士百</li>
    <li>雪花</li>
    <li>百威</li>
    <li>燕京</li>
    <li>青岛</li>
    <li>崂山</li>
    <li>珠江</li>
    <li>华丹</li>
    <li>勇闯天涯</li>
    <li>江小白</li>
    <script src="publick.js"></script>
    <script>
        var list = document.getElementsByTagName("li");//集合
        // 循环遍历
        for(var i = 0; i < list.length; i++){
            // 鼠标经过
            list[i].onmouseover = function(){
                // 当前,自己,自身
                this.style.backgroundColor = "pink";
            }
            // 鼠标离开
            list[i].onmouseout = function(){
                this.style.backgroundColor = "";
            }
        }
    </script>
</ul>

三、显示隐藏二维码模板

<style>
        .nodeSmall {
            width: 50px;
            height: 50px;
            background: url(images/bgs.png) no-repeat -159px -51px;
            position: fixed;
            right: 10px;
            top: 40%;
        }
        .erweima {
            position: absolute;
            top: 0;
            left: -150px;
        }
        .nodeSmall a {
            display: block;
            width: 50px;
            height: 50px;
        }
        .hide {
            display: none;/*隐藏*/
        }

        .show {
            display: block;/*显示*/
        }
</style>
<div class="nodeSmall" id="node_small">
    <a href="#"></a>
    <div class="erweima hide" id="er">
        <img src="images/456.png" alt=""/>
    </div>
</div>
<script src="publick.js"></script>
<script>
    // 获取外面div里面的a链接
    var aObj = my$("node_small").getElementsByTagName("a")[0];
    // 鼠标经过和鼠标离开
    aObj.onmouseover = function(){
        my$("er").className = "erweima show";
    }
    // 鼠标离开
    aObj.onmouseout = function(){
        my$("er").className = "erweima hide";
    }
</script>

四、通过name属性获取元素

<input type="button" value="显示效果" id="btn"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name1"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name2"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name1"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name3"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name1"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name1"><br />
<input type="text" value="大家继续棒棒哒,给力" name="name1"><br />
<script src="publick.js"></script>
<script>
    my$("btn").onclick = function(){
        // 通过name属性获取元素
        var inputs = document.getElementsByName("name1");//集合--伪数组
        // 遍历循环
        for(var i = 0; i < inputs.length; i++){
            inputs[i].value = "大家继续优秀";
        }
    }
</script>

五、根据类样式获取元素

<style>
    div{
        width: 300px;
        height: 50px;
        background: pink;
        margin-top: 10px;
    }
    .cls{
        background: skyblue;
    }
</style>
<input type="button" value="显示效果" id="btn">
<p class="cls">这是第一个段落标签</p>
<p>这是第二个段落标签</p>
<span class="cls">这是第一个span标签</span><br />
<span >这是第二个span标签</span><br />
<div class="cls">这是第一个div</div>
<div>这是第二个div</div>

<script src="publick.js"></script>
<script>
    // getElementsByClassName() --- 这个是H5新增加的
    // 需求:点击这个按钮实现只要是带cls这个类,都变背景色
    my$("btn").onclick = function(){
        var objs = document.getElementsByClassName("cls");//集合--为数组(注意cls前面没有点)
        // 循环遍历
        for(var i = 0; i < objs.length; i++){
            objs[i].style.backgroundColor = "red";
        }
    }
</script>

七、获取元素的其他方式

<input type="button" value="显示效果" id="btn">
<p class="cls">这是第一个段落标签</p>
<p>这是第二个段落标签</p>
<div class="cls">这是第一个div</div>
<div>这是第二个div</div>
<script src="publick.js"></script>
<script>
    // 总结:归类这两个都是根据选择器的方式来获取元素的
    // var btn = document.getElementById("btn")--这是我们第一个学习的
    // var btnObj = document.querySelector("#btn");//这个写法前面必须加#号
    // btnObj.onclick = function(){
    //     alert("哈哈,大家厉害了,我们学习全面啊,详细啊")
    // }

    
    var objs = document.querySelectorAll(".cls");//集合--伪数组
    // 循环遍历
    for(var i = 0; i < objs.length; i++){
        objs[i].style.backgroundColor = "orangered";
    }
</script>

八、总结

获取元素的方式大总结:
根据id获取元素
1、document.getElementById(“id的属性值”)
根据标签获取元素
2、document.getElementsByTagName(“标签的名字”)
根据name的属性值获取元素
3、document.getElementsByName(“name的属性值”)
根据类样式的名字获取元素
4、document.getElementsByClassName(“类样式的名字”)

根据选择器的方式来获取元素
5、document.querySelector(“#btn”)
6、document.querySelectorAll(“.cls”)
7、document.body 专门获取body标签

扩展: 获取html的元素— document.documentElement–这个是专门来获取html这个标签的)

九、鼠标经过显示边框

<style>
        *{
            margin: 0;
            padding: 0;
        }
        div{
            width: 200px;
            height: 150px;
            float: left;
            background: pink;
            margin-left: 10px;
            border:2px solid pink;
            /*小技巧,默认给个边框,这个边框的颜色就是背景色*/
        }
</style>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script src="publick.js"></script>
<script>
    var divs = document.getElementsByTagName("div");//集合 ---伪数组
    // 循环遍历
    for(var i = 0; i < divs.length; i++){
        // 鼠标经过
        divs[i].onmouseover = function(){
            // 自身,自己
            this.style.border = "2px solid #f40";
        }
        // 鼠标离开
        divs[i].onmouseout = function(){
            // 自身,自己
            this.style.border = "";
        }
    }
</script>

十、扩展搜索效果

<style>
        input{
            color:gray;
            outline: none;
        }
</style>
<input type="text" value="请输入搜索内容" id="txt">
    <script src="publick.js"></script>
    <script>
        // 获取焦点事件 onfocus
        my$("txt").onfocus = function(){
            // 判断
            if(this.value == "请输入搜索内容"){
                this.value = "";//表示清空
                this.style.color = "black";
            }
        }

        // 失去焦点事件 onblur
        my$("txt").onblur = function(){
            // 判断
            if(this.value == ""){
                this.value = "请输入搜索内容";
                this.style.color = "gray";
            }
        }
</script>

十一、扩展输入密码长度

<input type="password" value="" id="txt">
<script src="publick.js"></script>
<script>
    // 需求:判断密码长度,我们要求的是密码长度是>=6并且 <=10 
    //(长度不能小于6位,不能超过10位)
    my$("txt").onblur = function(){
        if(this.value.length >= 6 && this.value.length <= 10){
            this.style.backgroundColor = "pink";
        }else{
            this.style.backgroundColor = "red";
        }
    }
    // 密码长度判断,工作里面正则表达式
</script>

十二、设置和获取文本框的值

<input type="text" value="我是内容" id="txt">
<script src="publick.js"></script>
<script>
    my$("txt").onblur = function(){
        // 设置文本框的值
        this.value = "看我72变化,哈哈";//设置文本框的值
        console.log(this.value);//获取文本框的值
        console.log(this.type);//获取文本框的类型
        console.log(this.id);//获取文本框的id
    }
</script>

十三、设置自定义属性

<style>
        ul{
            list-style: none;
            cursor: pointer;
        }
</style>
<ul id="uu">
    <li>小明的成绩</li>
    <li>小丽的成绩</li>
    <li>小花的成绩</li>
    <li>小李的成绩</li>
    <li>乔峰的成绩</li>
</ul>
<script src="publick.js"></script>
<script>
    // 设置自定义属性:setAttribute("属性的名字","属性的值");
    // 获取自定义属性: getAttribute("属性的名字")
    // 根据id获取ul标签里面的所有的li
    var list = my$("uu").getElementsByTagName("li");//集合--伪数组
    // 循环遍历
    for(var i = 0; i < list.length; i++){
        list[i].setAttribute("score",(i+1) * 20);
        // 点击每个li标签,显示对应的自定属性的值
        list[i].onclick = function(){
            alert(this.getAttribute("score"));
        }
    }
    // 应用场景就是tab栏切换
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laker 23

要秃啦,支持一下嘛~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值