一、基本概念

在HTML5中添加了data-*的方式来自定义属性,所谓data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放。使用data-*可以解决自定义属性混乱无管理的现状。

二、原生js中自定义属性

1,设置自定义属性

设置自定义属性有如下2种方式。

(1)第一种方式是可以直接在 HTML 标签上面书写:

<h2 data-weather="rain">今天天气很好</h2>

上面 data-weather 就是一个自定义属性,值为 rain。

在通过这个方式设置的时候需要注意的是,如果设置的自定义属性是多个单词的组合的话,需要用中横线(-)链接,比如:

<h2 data-birth-date="19940219">今天天气很好</h2>

(2)第二种方式是通过 js 的 dataset 属性来设置:

// html
<h2>今天天气很好</h2> // js
var h2 = document.querySelector('h2');
h2.dataset.weather = "rain";

这样也是设置了一个 data-weater 的自定义属性,值为 rain,HTML5 中元素都会有一个dataset的属性,这是一个 DOMStringMap 类型的键值对集合。

通过这种方式设置同样需要注意,如果设置的是多个单词的组合的话,需要使用驼峰命名法来书写:

// html
<h2>今天天气很好</h2> // js
var h2 = document.querySelector('h2');
h2.dataset.birthDate = "19940219";

2,js读取自定义属性

读取的时候通过dataset属性,使用”.”来获取自定义属性,需要去掉 data- 前缀,连字符需要转化为驼峰命名:

// html(设置)
<h2 data-weather="rain" data-birth-date="19940219">今天天气很好</h2> // js(读取)
var h2 = document.querySelector('h2');
console.log(h2.dataset.weather); // rain
console.log(h2.dataset.birthDate); //

3、css读取自定义属性

也可以通过自定义属性来书写样式:

h3[data-birth-date="19940219"]{
color: red;
}

结果如图:

三、jQuery中的自定义属性

// html
<h3>今天天气很好</h3> // js
//设置
$("h3").data({"weather":"rain", "birth-date": "19940219"});
$("h3").data("birth-date", "rain"); // 读取
console.log($("h3").data("weather")); // rain
console.log($("h3").data("birth-date")); //

自定义属性 —— data-*的更多相关文章

  1. h5小功能_classList和自定义属性data

    ###1.classList返回一个对象集 通过obj.classList.add()或obj.classList.remove()可操作对象的class属性值 classList.toggle( ) ...

  2. jQuery缓存数据

    很多同学在项目中都喜欢将数据存储在HTMLElement属性上,如 1 2 3 4 <div data="some data">Test</div> < ...

  3. Bootstrap_Javascript

    弹窗 一. 结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-cont ...

  4. Bootstrap 固定定位(Affix)

    来自:慕课网 http://www.imooc.com/code/5396 Affix 效果常见的有以下三种: ☑ 顶部固定 ☑ 侧边栏固定 ☑ 底部固定 固定定位--声明式触发固定定位 Affix ...

  5. 转载:第二弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿!每日更新!

    今天一波三折,承受了超出预料的压力和煎熬,最后还是决定继续放出我的更新教程.我想我一没有泄露公司的代码,二没有提供泄露开发工具下载,只是从程序猿角度写了篇开发日志.我已经做好了最坏的准备,就算放弃这份 ...

  6. 我在 impress.js 中学到的小套路

    我在 impress.js 中学到的小套路 写在开篇 作为了一个自学 JavaScript 才一个月的新手,前几天“妄图”研究 jQuery-3.1.0 源码,结果自然是被虐得死去活来.机缘巧合之下, ...

  7. Bootstrap_Javascript_固定定位

    Affix 插件可以对任何元素进行固定定位,其中比较简单的方法,就是通过自定义属性 data 来触发.其主要包括两个参数: 1.data-spy:取值 affix,表示元素固定不变的. 2.data- ...

  8. 给js文件传递参数

    一.利用全局变量 这是最简单的一种方式,比如Google Adsense: <script type="text/javascript"> google_ad_clie ...

  9. boostrap插件

    第一章:模态弹出框 一.导入JavaScript插件 Bootstrap的JavaScript插件可以单独导入到页面中,也可以一次性导入到页面中.因为在Bootstrap中的JavaScript插件都 ...

  10. 两百条微信小程序跳坑指南(不定时更新)

    微信小程序联盟出品 跳坑textarea<二百二十三>不显示文本及textarea相关问题集合跳坑<二百一十三> background-image无法获取本地资源图片....跳 ...

随机推荐

  1. Leetcode401Binary Watch二进制手表

    二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 给定一个非负整数 n 代表当前 LED 亮着 ...

  2. mysqldump与mydumper

    mydumper -u root -S /srv/my3308/run/mysql.sock -B trade_platform -o /data/trade_platform

  3. JavaScript的基础应用

    <!DOCTYPE html> <!--JavaScript基础1--> <html lang="en"> <head> <m ...

  4. CSS实例 display display 边距

    CSS学习大纲 在标签上设置style属性: background-color:#2459a2 ; height:48px ; 编写CSS样式: 1.标签的style属性 2.写在head里面,sty ...

  5. ssh 连接vps

    默认端口22 ssh root@194.10.10.10 特定端口xxx 上面命令后面加上 "-p xxx" 就可以了

  6. PHP--Button按钮没有设置type类型,默认会提交表单

    例如: <from > <input type='submit' value='提交'></input> <button >提交</button& ...

  7. LintCode_114 不同的路径,115 不同的路径 II

    题目 有一个机器人的位于一个M×N个网格左上角(下图中标记为'Start'). 机器人每一时刻只能向下或者向右移动一步.机器人试图达到网格的右下角(下图中标记为'Finish'). 问有多少条不同的路 ...

  8. div style标签内嵌CSS样式

    我们在DIV标签内.SPAN标签内.p标签等html标签内使用style属性直接设置div的样式. 一.在<div>标签内使用style设置css样式   -   TOP 1.实例html ...

  9. Codevs1922 骑士共存问题

    1922 骑士共存问题 题目描述 Description 在一个n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入. 对于给定的n*n个方格的国 ...

  10. 【洛谷】P1888 三角函数

    P1888 三角函数 题目描述 输入一组勾股数a,b,c(a≠b≠c),用分数格式输出其较小锐角的正弦值.(要求约分.) 输入输出格式 输入格式: 一行,包含三个数,即勾股数a,b,c(无大小顺序). ...