当前位置: 首页 > Web前端 > HTML5

HTML5中的 `data--` 如何处理数据详解

时间:2023-04-05 13:03:51 HTML5

详解HTML5中`data-*`是如何处理数据的清楚的同学,可以看看stupidpropertyandattribute)一文。在开发微信公众号的时候,你一定见过下图的情况:我之前做过一个微信图形编辑器,我用过很多这样的情况。我在一些电商网站的源代码中也看到过如下情况:在移动端的开发中,我们经常会用到这种情况,比如媒体资源(图片,视频)的优化,我们的前端开发。我接触过的bootstrap框架在插件参考中使用了data-*,那么它有什么魅力呢?HTML5data-*起源在HTML5出现之前,我们通过class属性或者元素自带的属性来处理一些导入的数据,或者开发者自定义一些数据属性。这样操作数据非常不方便。如何在页面中处理数据更方便,成为了开发者的难题。HTML5出现后,你就不用担心了。w3cdata-attributespecificationHowHTML5data-*works我们可以将用户的信息存储在列表项中,如下所示:lvzhenbang这些数据对于页面访问者来说用处不大,因为用户看不到,但是对于web的开发很有用applications那些很有用。这时候你可以想象添加一个删除按钮,可以删除列表中的一个用户。通过用户的数据信息data-id,可以直接向后台发送请求删除,不需要其他相关的东西或者属性。用户。delete这个简单的使用场景描述了data-*是如何工作的。什么数据-*可以用HTML5数据存储-*虽然是个好东西,但不是万能的,还是【属性】(https://github.com/lvzhenbang/article/blob/master/js/porp-attr.md),Attribute只能存储字符串类型的数据。如果直接在里面存一个对象是不行的,但是把对象序列化之后,还是可以的。使用JavaScript读写数据-*//用户信息操作按钮varoBtn=document.getElementById('opt-btn');//删除按钮vardelBtn=document.getElementById('delte-btn');//获取informationvarid=oBtn.getAttribute('data-id');//改变数据信息delBtn.setAttribute('data-id',id);是不是很简单,然后你就可以通过AJAX向后台请求,做你现在想做的事。使用jQuery读写数据-*jQuery中有一个.attr()方法来解决读写data数据的功能。//获取用户信息操作按钮varoBtn=$('#opt-btn');//获取删除按钮vardelBtn=$('#delte-btn');//获取操作信息varid=oBtn。attr('data-id');//改变删除按钮的数据信息delBtn.attr('data-id',id);如果你熟悉jQuery,你可能会认为有一个.data()方法?虽然。attr()和.data()在操作data-*方面有一些重叠,但它们是完全不同的东西。理解不深的同学,知道.attr()就可以了。HTML5有原生API数据集读写数据-*HTML5开发方便,但存在一些兼容性问题,IE系列浏览器不支持。但时代在进步,这些精彩的浏览器终将成为历史,所以还是有必要多说几句。//获取用户信息操作按钮varoBtn=document.getElementById('opt-btn');//获取删除按钮vardelBtn=document.getElementById('delte-btn');//获取操作信息varid=oBtn.dataset.id;//更改删除按钮的数据信息delBtn.setAttribute.id=id;值得注意的是,这里没有数据前缀和-在这里,类似于我们在JavaScript中操作css属性的方式,我们使用数据集API当您在HTML中使用data-some-attribute-name时,您需要像数据集一样使用camelCase。JavaScript中的someAttributeName。HTML5data-*可以做什么?下面举几个简单的例子,仅供参考。过滤这实际上是模糊查询的简化版。我曾经在面对面使用的时候遇到过这样的问题,就问如何做一个简单的模糊查询。假设你有一个像下面这样的演示,你想通过过滤每个用户的关键字来过滤用户。只要将它们的关键字放在数据属性中,然后编写一个简短的脚本来循环显示/隐藏它们。html王明张华王力王大牛王小二张力js$('#filter').on('keyup',function(){varkeyword=$(this).val().toLowerCase();$('.person>li').each(function(){$(this).toggle(keyword.length<1||$(this).attr('data-models').indexOf(keyword)>-1);});});demo演示stylestyle毫无疑问可以使用class来定义style,但是也可以使用data-*来应用style(不管data数据的值是多少):HTMLCSS[data-warning]{background:red;}但是如果你想依赖数据属性的值怎么办?你可以这样使用它:[data-warning*=error]{color:red;}[data-warning*=update]{color:green;}[data-warning*=modify]{color:blue;}你熟悉上面的用法吗?相信学过bootstrap的同学应该不会陌生。可以参考bootstrap中将链接转化为按钮的demo响应式开发在响应式开发过程中,我们不仅可以使用媒体查询,还可以使用data-*//htmlmobile内容

//cssdiv[data-role="mobile"]{display:block;}configurejs插件BootStrap的配置项,使用自定义数据属性作为可选配置项来配置插件。弹出窗口的示例如下:很吸引人吧?">点我弹出/隐藏弹框和伪元素组合实现工具Tip//html数据属性//css.tooltip{position:relative;显示:内联块;填充:4px8px;白颜色;背景色:绿色;边界半径:2px;光标:指针;}.tooltip::after{位置:绝对;顶部:110%;左:0;内容:attr(数据工具提示);显示:无;宽度:200%;填充:6px12px;白颜色;背景色:rgba(0,0,0,0.75);border-radius:6px;}.tooltip:hover::after{display:inline-block;}demodemo:1.js动画计算中可能需要的元素的初始宽高和透明度什么时候使用等样式2.flash加载Flash电影的存储参数,包括(img/video/audio)3.存储游戏开发中的一些角色属性数据4.web统计标签数据的证明(即常用元素取一个作为名字,便于统计)什么时候不应该使用1.不要用它来替换现有的属性或元素。如下:8pm我们应该这样定义:8pm2.数据属性不应该作为元数据和微格式替代品。微格式专为人类使用而设计,并被引入到我们的标记上下文中。例如:如果你有一个Vcard,记录了一个人或组织的联系方式,那么你就给这个Vcard一个类,让机器理解它是一个联系方式。像这样的代码:AaronLumsden
而不是像这样的代码:AaronLumsden
如果您想了解更多关于微格式的信息,可以访问microformats.org3。它仅限于网站或应用程序的内部使用,但不包括外部使用。XML/RSS结论数据-*已在网络上广泛使用。令人兴奋的是,它们在旧版浏览器中仍然运行良好并遵循网络标准,这意味着您不必担心兼容性问题。但是如果你试图使用data-*来获取data-*的值来方便样式化,那么只有支持css3选择器的浏览器才支持这个特性。要了解更多信息,您可以查看这些文章使用HTML5数据属性所有你需要知道的关于HTML5数据属性HTML5自定义数据属性数据-*