管理杂谈OA答疑ERP答疑教程搜索

[转帖]js自定义属性的操作以及相关案例


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


自定义属性的操作

1.获取属性值

解释<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>

区别:

2.设置属性值

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栏切换有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自定义属性

1.设置H5自定义属性

2.获取H5自定义属性

1.兼容性获取 element.getAttribute(‘data-index’ );
2. H5新增element.dataset.index或者element.dataset[ "index’]


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn