• JavaScript之HTML5 data-* 自定义属性[HTML5标准 node.dataset.attributeName]


    HTML5中添加了data-*的方式来自定义属性,所谓data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放

    使用data-*可以解决自定义属性混乱无管理的现状下面展开对此属性的操作介绍

    1.写入

    //方式1:JavaScript方式
    elementNode.dataset.attributeName = attributeValue;
    
    //方式2:HTML方式(以DIV为例)
    <div data-attributeName='value' ></div>

    2.读取

      2.0  我们在添加或读取属性的时候需要去掉前缀data-*,像上面的例子我们没有使用test.dataset.data-attributeName = attributeValue;的形式

      2.1 如果属性名称中还包含连字符(-),需要转成驼峰命名方式,但如果在CSS中使用选择器,我们需要使用连字符格式

    //javaScript
    var attributeVaule = elementNode.dataset.attributeName;
    
    //CSS
    [data-attributeNamePart1-Part2]{
      // style...  
    }
    

    3.综合demo

    //css
    [data-johnny-birthdate]{
         100%;
        height: 5em;
        background-color: red;
    }
    
    //html
    ...
    <body>
    	<table id="table">
    		
    	</table>
    </body>
    ...
    
    //js
    var table = document.getElementById("table");
    table.dataset.johnnyBirthdate = "1995-01-01"; //设置(添加)自定义属性
    console.log("dataset.johnnyBirthdate[JS]:", table.dataset.johnnyBirthdate);//获取自定义属性值
    
    console.log("data-johnny-birthdate[HTML/CSS]:", table.dataset.johnnyBirthdate);//获取自定义属性值
    

      

      HTML:页面结构

    HTML:运行效果

    控制台:JavaScript

     

     

    参考文献:

      [HTML5 data-* 自定义属性](http://www.cnblogs.com/dolphinX/p/3348458.html)

  • 相关阅读:
    MapReduce1.x与MapReduce2.x差异
    刷题60—排序数组
    刷题59— 圆圈中最后剩下的数字
    刷题58—地图分析
    刷题57—单词的压缩编码
    刷题56—卡牌分组
    刷题55—车的可用捕获量
    刷题54—三维形体的表面积
    刷题53—按摩师
    刷题52—链表的中间结点
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/8006141.html
Copyright © 2020-2023  润新知