使用.data()而不是使用纯变量存储数据的原因是什么?

时间:2014-07-01 16:01:53

标签: javascript jquery jquery-data

让我们说我必须记住某个元素的初始高度。 我看到的一种常见做法是在该元素上使用$.data保存此值。

我无法理解这一点的好处。为什么不简单地保留一个带有该值的简单变量,或者如果有多个元素则保留带有值的数组?保持代码易于理解。

3 个答案:

答案 0 :(得分:6)

使用data()的主要原因是存储特定于某个元素的数据,以便以后可以访问,这是一个例子

$('.elements').on('click', function() {
     $(this).data('value', this.value);
});

$('.elements').on('keyup', function() {
    $(this).val( $(this).data('value') );
});

请注意,事件处理程序可以匹配许多不同的元素,并且使用data()可以保留与每个元素关联的数据,而无需为每个元素或复杂数组使用多个变量。

EXAMPLE

答案 1 :(得分:4)

它允许重用该函数以将相同的效果应用于其他元素(无需处理闭包)。

它允许使用HTML初始化值。

它使开发人员工具更容易检查数据。

答案 2 :(得分:0)

基本上是因为你在INSIDE A NODE中保存信息,防止可能的变量名冲突而不需要传递变量。有关节点的所有必要信息,请留在节点本身