JavaScript的this和自定义(属性,索引,标识)用法

目录

自定义属性

自定义索引

 自定义标识

选项卡案例

QQ列表的展开案例

选项卡嵌套案例


自定义属性

元素的本质就是对象(元素这个对象是浏览器内置的帮我们去定义好的,包含了很多属性和值都是天生自带的,我们也可以自己去给元素定义属性和值

只要是对象就符合对象的操作(给值就是设置,不给值就是获取)

 div.id = "box";
        // div.className = "myBox";
        div["className"] = "myBox";

        // 获取
        console.log(div.id);
        console.log(div["className"]);

//获取元素
var div = document.getElementsByTagName("div")[0];

// 设置
// 原来没有就是增加
div.hello = "哈喽";
div[""] = "中公教育";
div.zHello = "helloWorld";
console.dir(div);

// 获取
console.log(div.test);//undefined
console.log(div.hello);
console.log(div.zhonggongjiaoyu);
console.log(div.zHello);

自定义索引

自定义索引的本质就是自定义属性,只不过是将属性对应的值赋值为数字

// 自定义索引的本质就是自定义属性,只不过是将属性对应的值赋值为数字
var oLis = document.getElementsByTagName("li");
console.log(oLis);

// 绑定事件
for (var i = 0; i < oLis.length; i++) {
    // 自定义索引
    oLis[i].aIndex = i;
    oLis[i].onclick = function () {
        // 事件触发的时候循环已经结束了,i的值就是条件不满足的值
        // console.log(i);
        // console.log(oLis[i]);
        
        console.log(this);
        console.dir(this);
        console.log(this.aIndex);
    }
}

 

 自定义标识

    // 获取元素
        var aImg = document.getElementsByTagName("img")[0];


        // 自定义标识 
        var flag = true; //默认值是true 标识当前是默认的状态

        // 绑定事件
        aImg.onclick = function(){
            // 判断
            if(flag == true){ //暗的状态
                // 变亮
                // console.log(this);
                // 改变图片的src
                this.src = "./img/bright.jpg";
                // 重新给flag赋值
                flag = false;
            }else{  //亮的状态
                  // 变暗
                  // 改变图片的src
                  this.src = "./img/dark.jpg";
                  // 重新给flag赋值
                   flag  = true;
            }

        }

选项卡案例

案列简述,点击css显示css对应界面内容,点击Html显示Html内容

 <style>
        * {
            padding: 0;
            margin: 0;
        }

        ul,
        ol,
        li {
            list-style-type: none;
        }

        .tab {
            width: 1226px;
            height: 460px;
            margin: 50px auto;
            border: 1px solid orangered;
        }

        .tab ul {
            height: 30px;
            border-bottom: 1px solid orangered;
        }

        .tab ul li {
            line-height: 30px;
            float: left;
            width: 100px;
            text-align: center;
            color: #333;
     
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值