$(".left").click(function(){
//给rleft增加数据存储
$.data($(this),'key1',"name");
//获取数据
var text = $.data($(this),"key1");
$("span").text(text);
})
为什么这么写没内容输出,而是要赋值?
div>
<script type="text/javascript">
$(".left").click(function(){
var $this = $(this);
//给rleft增加数据存储
$.data($this,'key1',"name");
//获取数据
var text = $.data($this,"key1");
$("span").text(text);
})
</script>
$(".left").click(function(){ //给rleft增加数据存储 $.data($(this),'key1',"name"); //获取数据 var text = $.data($(this),"key1"); $("span").text(text); })
关键字 this 总是指向调用该方法的对象
第一个this是指.left这个节点
第二个this是指$.data($(this),'key1',"name");
this是不断变化的,必须用变量存储起来
$.data($(this), "a", "data test");这句话里的$(this)应该代表的是$,也就是jQuery,而不是 $(".left")这个元素.
$('.right').click(function() {
var ele = $(this);
//通过.data方式设置数据
$(this).data("a", "data test")
$(this).data("b", {
name: "慕课网"
})
//通过.data方式取出数据
var reset = $(this).data("a") + "</br>" + $(this).data("b").name
ele.find('span').append(reset)
})
这个里面的$(this)指的就是$('.right')这个个元素, $(this).data("a", "data test")数据也是存储在它下面的的。