我是靠谱客的博主 贪玩黑猫,最近开发中收集的这篇文章主要介绍html5之data-属性,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这是我第一次发现data-这个属性,记录下来也算是工作中的积累(不积跬步无以至千里嘛)。  

------------------------------------------------------------------------------------------------------------------------------------------------------

今天在修改代码的时候发现以下代码(代码并不是我写的):

<a href="#" class="dropdown-toggle"  data-toggle="dropdown"></a>


刚开始我以为这仅仅是标签自定义属性,为了之后的代码使用,但继续调查看到下面的代码后,我觉得没这么简单:

$(this).data('toggle')


疑问1如果是自定义属性,用jquery的常用该属性的值得访问方式应该是这样:$(this).attr("data-toggle")

疑问2跟jquery的data()方法有什么关系?

             jquery的data方法是用于向元素存键值对,以及取键对应的值的。例如

            $("div").data("blah", "hello");     // 将blah设置为hello

            $("div").data("blah");                 // hello       去除blah的值

------------------------------------------------------------------------------------------------------------------------------------------------------

经过调查对以上问题进行一一回答:

回答1:摆渡上搜索了一下,大致了解到时html5的东西,所以继续到w3school查看。

      w3school网站(http://www.w3school.com.cn)上对html5的属性列表中有这么一项

属性
值              
描述
data-yourvaluevalue

创作者定义的属性。

HTML 文档的创作者可以定义他们自己的属性。

必须以 "data-" 开头。

      所以明白了以下内容:

       ①html5才有的属性,也就意味着如果在非html5场合中使用,那就完全是一个自定义属性了。

       ②因为本身也是自定义属性,所以用$(this).attr("data-toggle")的方式取值是完全没问题的。

       ③必须以data-   开头

回答2:在html5的环境下,有两种访问data的方式,

还是以最初的例子<a id="testA"  href="#" class="dropdown-toggle"  data-toggle="dropdown" data-role-name="arolename"></a>作为说明,我们新添加一个data-属性(data-role-name)

       ①:不采用html5,采用dataset的方式。

       应用了data-属性的元素含有dataset的属性,可以直接访问dataset的各项,如下:

         var testA =  document.getElementById("testA");

         alert(testA.dataset.toggle);     //dropdown

          细心的话会发现访问data-属性时并没有加上前缀,如上例访问的是toggle而不是data-toggle,这就是规则1。

         规则1:data-属性访问时不能带前缀;

         再把第二个data-属性也alert出来  :alert(testA.dataset.roleName);     //arolename 

         会发现data-后面明明是”role-name“怎么变成了roleName,这就是规则2。

         规则2:访问data-属性时,其后面的用-分割的字符要采用驼峰的写法。

          ②:用jquery调用data-属性的方式。

          jquery的data方法能完美的支持data-属性,但同样要使用上面两个规则,如:

          $("#testA").data("toggle");             //dropdown     

          $("#testA").data("roleName");      // arolename 

------------------------------------------------------------------------------------------------------------------------------------------------------

以上问题回答完了,因为查询了资料还学习到其他东西,所以做个额外补充:

<a id="testA"  href="#" class="dropdown-toggle"  data-toggle="dropdown"data-role-name="arolename"></a>


data-属性的增删改

var testA =  document.getElementById("testA");

①data-属性的删除       delete   testA.dataset.toggle;

②data-属性的增加       testA.dataset.newAdd = "123";

③data-属性的修改       testA.dataset.roleName= "brolename";


浏览器支持情况:

  • Internet Explorer 11+
  • Chrome 8+
  • Firefox 6.0+
  • Opera 11.10+
  • Safari 6+




      




最后

以上就是贪玩黑猫为你收集整理的html5之data-属性的全部内容,希望文章能够帮你解决html5之data-属性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部