可能你們在使用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>