操作元素之自定义属性(有H5的自定义属性)

自定义属性的操作

1.获取属性值

之前我们学过一个

  • element.属性

现在再来一个新的

  • element.getAttribute(‘属性’);

两者的区别

  • element.属性 获取内置属性值(元素本身自带的属性)
  • element.getAttribute(‘属性’); 主要获得自定义的属性 (标准)(ps:我们自己定义的属性)
2.自定义(设置)属性值

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

  • element.属性 = ‘值’ 设置内置属性值
    div.id = ‘test’;

  • element.setAttribute(‘要修改的属性’,‘值’)
    div…setAttribute(‘class’,‘footer’);
    div…setAttribute(‘index’,2);
    (index 自定义值)

两者区别
 element.属性  设置内置属性值
 element.setAttribute(‘属性’ );  主要设置自定义的属性 ( 标准)

3.移除属性
  • element.removeAttribute(‘属性’);
    div.removeAttribute(‘index’)
    移除index属性

自定义属性 案例
tab栏切换
点击对应的导航栏显示对应的内容

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        body{
            height: 800px;
        }
        .zs{
            width: 800px;
            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;
            list-style-type: none;
        }
        .tab_list .current {
            background-color: #c81623;
            color: #fff;
        }
        .item_info{
            padding: 20px 0 0 20px ;
        }
        .item {
            display: none;
        }
       
    </style>
</head>
<body>
    <div class="zs">
    <div class='tab' >
        <div class="tab_list">
            <ul >
                <li class="current ">产品介绍</li>
                <li>规格与包装</li>
                <li>售后保障</li>
                <li>商品评价(一亿)</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'>
                一亿:啊?
            </div>
            <div class='item'>
                社区正在搭建 敬请期待
            </div>
        </div>
    </div>
</div>
<script>
    var tab_list =document.querySelector('.tab_list');
    var lis = tab_list.querySelectorAll('li');
    var item = document.querySelector('.tab_con');
    var items = item.querySelectorAll('.item');
    for (var i=0 ;i<lis.length;i++){
        lis[i].setAttribute('index',i);
        lis[i].onclick = function(){
            for (i=0;i<lis.length;i++){
                lis[i].className='';
                }
            this.className='current' ;
           var index = this.getAttribute('index');
           for (var i=0 ;i<items.length;i++){
            items[i].style.display = 'none'
           }
           items[index].style.display = 'block'
           
        }
    }
</script>
</body>

实现效果

在这里插入图片描述

H5自定义属性

 为了防止我们的自定义属性和内置属性
 H5它规定了 自定义属性要以 data- 开头作为属性名并且赋值

设置H5自定义属性

比如可以使用
<div data-index= ‘1’></div>
或者使用js设置

element.setAttribute('data-index',2)
获取H5自定义属性

第一种还是我们的老办法

element.getArrtribute(‘data-index’);
第二种就是H5新增的
element.dataset.index
或者

element.dataset[ ‘index’]

ie 11才开始支持dataset
dataset是一个集合里面存放了所有以data开头的自定义属性

注意!!!
 element.dataset只能获取以data开头的自定义属性

 如果自定义属性里面有多个-链接的单词,比如 data-list-name=’Jerry‘;
 那么在使用新增方法获取时就需要使用驼峰命名法

element.dataset.listName
//或者
element.dataset.['listName']

好了 今天就到这里了 觉得写的不错还请点个赞支持一下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值