• html5自定义属性--------Dataset


    1. <div id="day2-meal-expense"
    2. data-drink="coffee"
    3. data-food="sushi"
    4. data-meal="lunch">¥20.12div>

    要想获取某个属性的值,可以像下面这样使用dataset对象:

    1. var expenseday2 = document.getElementById('day2-meal-expense');
    2. var typeOfDrink = expenseday2.dataset.drink;

    需要注意的是带连字符连接的名称在使用的时候需要命名驼峰化,例如,假设上面的例子中现在有如下data属性,data-meal-time,则我们要获取相应的值可以使用:

    expenseday2.dataset.mealTime

    dataset属性的优势:当我们要获取多个自定义属性的时候,那么我们按照原来的方式是

    var typeOfDrink = document.getElementById('day2-meal-expense').getAttribute('data-drink');

    获取多个自定义属性就得把获取getAttribute的语句写在for循环里面去获取,非常麻烦,而使用dataset属性。

    expense = document.getElementById('day2-meal-expense').dataset;

    dataset并不是典型意义上的JavaScript对象,而是个DOMStringMap对象DOMStringMap是HTML5一种新的含有多个名-值对的交互变量。

    如果你想删掉一个data属性,可以这么做:

    delete expenseday2.dataset.meal;

    如果你想给元素添加一个属性,可以这么做:

    expenseday2.dataset.abcds= 'test';

    按时就耗费时间上看dataset是比attrs要长的。但是少量自定义属性是可以忽略这个缺点的。

    自定义属性使用场景

    我们可以基于data属性值对相应的元素设置CSS样式,例如下面这个例子:

    1. <div class="aa" data-name="111">div>
    2. <div class="aa" data-name="222">div>
    1. .aa{width:256px; height:200px;}
    2. .aa[data-name='111']{background:url(test1.jpg) no-repeat;}
    3. .aa[data-name='222']{background:url(test2.jpg) no-repeat;}

  • 相关阅读:
    Web进阶
    简单三招,就能将ppt翻译成英文,快来学习
    存储单位转换工具类
    开源分布式存储系统(HDFS、Ceph)架构分析
    第十二章 配置 Apache 以与 Web 网关配合使用 (Windows)
    C++移动构造和移动赋值函数
    sqlserver修改decimal类型的长度
    记录单片机编码的坑
    汽车电子时钟硬件设计指南
    <list>——《C++初阶》
  • 原文地址:https://blog.csdn.net/m0_57033755/article/details/138066426