专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > jQuery

HTML5新增属性data-跟js/jquery之间的交互

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
HTML5新增属性data-*和js/jquery之间的交互

HTML5新增属性data-
data-
自定义属性,这种方式的自定义属性解决属性混乱无状态管理的现状

书写实例

<div data-role="page"
     data-last-value="43"
     data-hidden="true"
     data-options='{"name":"John"}'>
</div>

1. 定义:

data-* 属性用于存储页面或应用程序的私有自定义数据。

data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。

2. 注意点:

data-* 属性包括两部分:

  • 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符
  • 属性值可以是任意字符串

data-*属性和jQuery交互

使用jQuery中的.data()函数取用data-*属性值

console.log($("div").data('lastValue'));  //输出的值为:43
console.log($("div").data('role'));  //输出的值为:page

注意事项

  1. data-**属性名格式驼峰命名改写
  2. data-属性是在第一次使用这个数据属性后不再存取或改变(所有的数据值都在jQuery内部存储)

    演示:
        console.log($("div").data('lastValue'));  //输出的值为:43
        $('div').data('lastValue',44);  //设置data-last-value=44
        $('div')[2]  //假设这是文档中的第3个div,我们输出这个dom
        //输出:<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'>
    别怕,你再输出
        console.log($("div").data('lastValue'));  //输出的值为:44
        值只是存储在jQuery内部了

    使用jQuery中.attr()函数取用data-*属性值

    console.log($('div').attr('data-role')); //输出的值为:page
    console.log($('div').attr('data-last-value')); //输出的值为:43

使用jQuery中.attr()函数设置data-*属性值

$('div').attr('data-emp',{'name':'zhangsan','age':23}); //给div添加一个data-emp的属性,属性值为一个json对象

注意:破折号要转化成驼峰命名

data-*属性和JS交互
笔者不爱这种方式,但是看到了,就总结整理在这吧

先准备示例:

<div id='main'>这种方式总感觉别扭</div>
  1. 设置data-*属性

    //首先采用链式编程,再使用DOM元素上有一个dataset属性,这是一个DOMStringMap类型的键值对集合
    document.getElementById('main').dataset.isBoss = true;
    document.getElementById('main').dataset.emp = {'name':'zhangsan',age:23};

    结果:

    这种方式总感觉别扭

    这就完成了添加两个data-自定义的属性

  2. 读取data-*属性也可以使用dataset这个属性规则是一样的

    console.log(document.getElementById('main').dataset.isBoss); //返回true

    除此之外还可以使用JS原生的getAttribute/setAttribute方法

    document.getElementById('main').setAttribute('data-email','chentging@aliyun.com');
    document.getElementById('main').getAttribute('data-email');

最后注意的是CSS中data-是不可以不带的

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • jQuery搜索框输入文字下拉揭示菜单

    jQuery搜索框输入文字下拉提示菜单 jQuery搜索框输入文字下拉提示菜单 原文地址: http://www.jq22.com/jquery-info6193 ...

  • 7个替开发者准备的有用的jQuery技巧

    7个为开发者准备的有用的jQuery技巧 一、在新窗口打开链接 用下面的代码,你点击链接即可在新窗口打开: $(document).ready(fu...

  • jQuery获取呼应Input例子

    jQuery获取相应Input例子 页面上有许多input框,使用的是EasyUI样式,中间还参杂着各种其他无id的Input框,如下: <input class=...

  • webpack 引出jquery和第三方jquery插件

    webpack 引入jquery和第三方jquery插件 1、引入jquery jQuery 直接在 html 中引入,然后在 webpack 中把它配置为全局即可。 index....

  • JQuery的开发与使用经验

    JQuery的开发与使用心得 关于jQuery的 入门使用jQuery可以很容易或具有挑战性的,这取决于你如何使用JavaScript,HTML,CSS进行开发和...

  • 深入学习jQuery卡通片控制

    深入学习jQuery动画控制 &times; 目录 [1]动画状态 [2]停止动画 [3]动画延迟[4]全局控制 前面的话   jQuery动画可以使用fade、...

  • jquery操作table报表

    jquery操作table表格 一、数据准备 <table id="table1"> <tr><th>文章标题</th><th>文章分类</th><th>发布时间</th><th>...

  • html + css + jquery实现简略的进度条实例

    html + css + jquery实现简单的进度条实例 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-eq...

  • jquery中ajax方法的datatype的功用

    jquery中ajax方法的datatype的作用 今天在维护一个项目的时候遇见了一个小问题。但是这个问题我认为对于项目十分有帮助。...

  • jQuery菜单示范(全选,反选,取消)

    jQuery菜单示例(全选,反选,取消) 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <titl...

热门推荐: