在HTML5中标签新增了自定义的data-*属性,相信这个大家都有了解,但是获取data-*值得时候大家怎么获取的呢?比如:
<p id="p_one" class="ppp" data-pid="Yinghao" data-uid="Guo">nothing</p>
怎样获取data-pid和data-uid的值?
$('p').attr('data-pid'));
这样的话就太low了,jQ专门提供了获取自定义data-*值的方法:
$('p').data('pid'); //获取该p标签的data-pid值,同$('p').attr('data-pid')用法
$('p').data(); //获取该p标签所有“data-*”属性值,以key-value形式存储在Object中,不能获取非data开头的属性的值,如id和class
这就完了?不,$.data()的用法可不止如此,看如下一段代码:
var flag = false;
$("button").click(function(){
if(flag){
$("p").text("true");
flag=false;
}else{
$("p").text("false");
flag=true;
}
});
这里的falg变量是对p操作过程中的临时变量,可以不使用var声明该变量,而使用$(selector).data()给p定义一个data-*变量,达到同样的目的,如下:
$("button").click(function(){
if( $("p").data("flag") ){
$("p").text("true");
$("p").data("flag",false);
}else{
$("p").text("false");
$("p").data("flag",true);
}
});