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

在HTML5中标签新增了自定义的data-*属性,相信这个大家都有了解,但是获取data-*值得时候大家怎么获取的呢?比如:

nothing

怎样获取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);
      }
});










你可能感兴趣的:(javascript篇)