js自定义属性的操作以及相关案例

自定义属性的操作

1.获取属性值

  • element.属性 获取属性值
  • element.getAttribute(‘属性’);
<body>
   <div id="demo" index="1"></div>
   <script>
       var div = document.querySelector('div');
       //1.获取元素的属性值
       //(1)element.属性
       console.log(div.id);
       //(2)elemnt.getAttribute('属性') get得到获取attribute属性的意思  自己添加的属性称为自定义属性index
       console.log(div.getAttribute('id'));
       console.log(div.getAttribute('index'));

   </script>
</body>

区别:

  • element.属性 获取内置属性值(元素本身自带的属性)
  • element.getAttribute(‘属性’); 主要获得自定义的属性(标准)我们程序员自定义的属性。

2.设置属性值

  • element.属性=‘值’设置内置属性值。
  • element . setAttribute(‘属性’,‘值’) ;

3.移除属性removeAttribute(属性)

<body>
   <div id="demo" index="1"></div>
   <script>
       var div = document.querySelector('div');
       //1.获取元素的属性值
       //(1)element.属性
       console.log(div.id);
       //(2)elemnt.getAttribute('属性') get得到获取attribute属性的意思  自己添加的属性称为自定义属性index
       console.log(div.getAttribute('id'));
       console.log(div.getAttribute('index'));

       //2.设置元素属性值
       // (1)element.属性='值'
       div.id = 'test';
       div.className = 'navs';
       //(2)element . setAttribute('属性','值') ; 主要针对自定义属性
       div.setAttribute('index',2);
       div.setAttribute('class','footer'); //class 特殊    这里面写的就是class 而不是className
       //3.移除属性removeAttribute(属性)
       div.removeAttribute('index');
   </script>
</body>

案例:tab栏切换(重点案例)

  • 当鼠标点击上面相应的选项卡(tab),下面内容跟随变化

**

案例分析:

**

Tab栏切换有2个大的模块
上的模块选项卡,点击某一个,当前这一个底色会是红色,其余不变(排他思想)修改类名的方式
下面的模块内容,会跟随上面的选项卡变化。所以下面模块变化写到点击事件里面。
规律:下面的模块显示内容和上面的选项卡-对应 ,相匹配。
核心思路:给.上面的tab_ list 里面的所有小i添加自定义属性,属性值从0开始编号。
当我们点击tab_ list里面的某个小i,让tab_ .con 里面对应序号的内容显示,其余隐藏(排他思想)

<style>
       * {
           margin: 0;
           padding: 0;
       }
       
       li {
           list-style-type: none;
       }
       
       .tab {
           width: 978px;
           margin: 100px auto;
       }
       
       .tab_list {
           height: 39px;
           border: 1px solid #ccc;
           background-color: #f1f1f1;
       }
       
       .tab_list li {
           float: left;
           height: 39px;
           line-height: 39px;
           padding: 0 20px;
           text-align: center;
           cursor: pointer;
       }
       
       .tab_list .current {
           background-color: #c81623;
           color: #fff;
       }
       
       .item_info {
           padding: 20px 0 0 20px;
       }
       
       .item {
           display: none;
       }
   </style>
</head>

<body>
   <div class="tab">
       <div class="tab_list">
           <ul>
               <li class="current">商品介绍</li>
               <li>规格与包装</li>
               <li>售后保障</li>
               <li>商品评价(50000</li>
               <li>手机社区</li>
           </ul>
       </div>
       <div class="tab_con">
           <div class="item" style="display: block;">
               商品介绍模块内容
           </div>
           <div class="item">
               规格与包装模块内容
           </div>
           <div class="item">
               售后保障模块内容
           </div>
           <div class="item">
               商品评价(50000)模块内容
           </div>
           <div class="item">
               手机社区模块内容
           </div>

       </div>
   </div>
</head>
<body>
   <script>
       //1.获取元素
       var tab_list = document.querySelector('.tab_list');
       var lis = tab_list.querySelectorAll('li');
       var items = document.querySelectorAll('.item');
       //for循环绑定点击事件
       for(var i = 0; i<lis.length; i++){
           //开始给5个小li 设置索引号
           lis[i].setAttribute('index',i);
           lis[i].onclick = function(){
               //干掉所有人  其余的li清除 class 这个类
               for(var i = 0; i<lis.length; i++){
                   lis[i].className = '';
               }
               //留下我自己
               this.className = 'current';
               //2.下面的显示内容模块
               var index = this.getAttribute('index');
               console.log(index);
               //干掉所有人  让其余的item 这些div隐藏
               for(var i = 0; i < items.length; i++){
                   items[i].style.display='none';
               }
               items[index].style.display = 'block';
           }
       }
   </script>
</body>

H5自定义属性

  • 自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。

  • 自定义属性获取是通过getAttribute(属性’)获取。

  • 但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。

1.设置H5自定义属性

  • H5规定自定义属性data-开头做为属性名并且赋值

2.获取H5自定义属性

1.兼容性获取 element.getAttribute(‘data-index’ );
2. H5新增element.dataset.index或者element.dataset[ "index’]
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黑马金牌编程

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值