jquery之data()方法

data有什么作用?
  在我们平时js编码过程中,我们经常会向DOM元素中添加各种自定义属性,这样有一个弊端。
  1 假设我们在DOM元素中添加了一个属性,这个属性指向了某个js对象。 dom1.ele = jsObj
  2 当这个js对象发挥完作用后,我们已经用不到他了。这时候按理说应该把这个js变量清空,释放内存。大家都知道,如果一个js对象不存在任何外在引用的话,解释器会自动将其在内存中删除,这也是javascript相对于c++等手动管理内存的程序的优点。
  3 但是这时候问题来了,因为DOM元素引用了这个js对象,尽管这个js对象已经没有存在的意义了,但是解释器是不会把他删除的。如果想要把其删除,我们可能需要将DOM元素的这个属性设置为null。
  4 我们编写了这么多的代码,哪里能把 每个js对象是不是被DOM元素引用了都记住啊?
  5 而且,假如DOM元素与js对象之间相互循环引用,根本就无法删除! 这就是内存泄漏
  6 所以,为了避免这种情况的发生,我们要尽量避免 引用数据(这里的引用数据可以说是javascript对象) 直接依附在DOM对象上。
  7 data就是用来搞定以上问题的方法。(以上为转载)
data()方法,用于存储/获取临时数据。也是一种缓存机制。
获取储存在id为box1上面的临时数据

<div id="box1">
    </div>
    <script src="js/jquery-1.11.3.js"></script>
    <script>
      $(function () {
          $("#box1").data({
            name: "王五",
            age: "29",
          });
          console.log($('#box1').data('name'));
          console.log($('#box1').data('age'));
        });
    </script>

结果:
在这里插入图片描述
获取已经在标签上的data值

<div id="box1" data-name="张三" data-age="24">
    </div>
    <script src="js/jquery-1.11.3.js"></script>
    <script>
          console.log($('#box1').data('name'));
          console.log($('#box1').data('age'));
    </script>

在这里插入图片描述
用data方法对临时数据进行操作

<div id="box1">
      <p data-name="张三" data-age="24" data-profession="前端开发工程师">
        张三
      </p>
      <p data-name="李四" data-age="24" data-profession="UI设计师">李四</p>
    </div>
    <button type="button" id="btn1">获取datad的name值</button>
    <button type="button" id="btn2">修改data</button>
    <script src="js/jquery-1.11.3.js"></script>
    <script>
      $(function () {
        $("#btn1").click(function () {
          alert($("#box1 p").data("name")); //获取匹配的元素集合中的第一个元素的data的值。
        });
        $("#btn2").click(function () {
          $("#box1 p:eq(0)").data({
            name: "王五",
            age: "29",
            profession: ".Net开发工程师",
          });
        });
      });
    </script>

单击获取的效果:
在这里插入图片描述
修改之后在获取的效果:
在这里插入图片描述
data方法在ajas出来之后基本就很少有人去使用了,毕竟jquery相对来说是一门比较老牌的第三方了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值