为什么使用.data()而不是使用普通变量来存储数据?

What's the reason for storing data with .data() instead of using plain variables?

本文关键字:变量 数据 存储 data 为什么      更新时间:2023-09-26

假设我必须记住某个元素的初始高度。我看到的一种常见做法是将该值与该元素的$.data一起保存。

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

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

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

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

它允许函数被重用以将相同的效果应用于其他元素(而不必处理闭包)。

允许用HTML初始化值

基本上是因为让您将信息保存在NODE内,防止可能的变量名称冲突,并且不需要传递变量。关于节点的所有必要信息都保留在节点本身