【转载】HTML5自定义data属性

可能你们在使用jquery mobile时,常常会看到data-role、data-theme等的使用,好比:经过以下代码便可实现页眉的效果:
 
[html] 
<div data-role="header"> 
    <h1>我是标题</h1> 
</div> 
 
为何写一个data-role="header"就能实现底部为黑色、文字居中显示的效果呢?
 
 
本文提供一种最简单的实现办法,让你们对这些用法有个直观的了解。
 
 
咱们写一个html页面,自定义一个data-chb="header"的属性,但愿具有这个属性的div区域背景颜色为黑色,文字为白色,居中显示;不具有data-chb自定义属性的div按照默认方式显示,html代码以下:
 
[html]
<body> 
  <div data-chb="header"> 
    <h1>我是使用了data-chb自定义属性的div</h1> 
  </div> 
  <br/> 
  <div> 
    我没有使用data-chb自定义属性,该怎么展示就怎么展示; 
  </div> 
</body> 
 
要想实现"背景颜色为黑色,文字为白色,居中显示"的显示效果,咱们定义以下的css:
[css] 
 <style> 
 .ui_header { 
  background-color: black; 
  text-align: center; 
  color:white; 
  border:1px solid #000; 
 </style> 
 
而后咱们经过以下js方法实如今页面加载时,动态添加css定义,改变具有data-chb属性的div的显示样式:
[javascript]
  <script type="text/javascript"> 
  window.onload=function(){ 
    var elems = document.getElementsByTagName_r("div"); 
    if(elems!=null&&elems.length>0){ 
      var length = elems.length; 
      //遍历全部DIV控件 
      for(var i=0;i<length;i++){ 
        var elem = elems[i]; 
        //获取该控件的自定义属性 
        var customAttr = elem.dataset.chb; 
        //也能够经过以下方式得到自定义属性 
        //var customAttr = elem.dataset["chb"]; 
        //若是是咱们预先定义好的header值,表示须要处理 
        if(customAttr=="header"){ 
          //添加样式 
          elem.setAttribute("class","ui_header"); 
        } 
      } 
    } 
  } 
</script> 
相关文章
相关标签/搜索