为了账号安全,请及时绑定邮箱和手机立即绑定

$.data($(this),'key1',"name");为什么这么写不行的,而是要赋值?

 $(".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>


正在回答

2 回答

 $(".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是不断变化的,必须用变量存储起来

3 回复 有任何疑惑可以回复我~
#1

文酱酱 提问者

非常感谢!
2017-03-10 回复 有任何疑惑可以回复我~

$.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")数据也是存储在它下面的的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

$.data($(this),'key1',"name");为什么这么写不行的,而是要赋值?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信