关于jQ中$(selector).data(name,value)方法的使用

来源:互联网 发布:中国广电网络全国整合 编辑:程序博客网 时间:2024/06/06 19:12

在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);      }});