在jQuery中,我可以使用.data()将元素存储到另一个元素上以便快速检索吗?

In jQuery, can I store elements using .data() onto another element for fast retrieval?

本文关键字:元素 另一个 检索 存储 可以使 我可以 data jQuery      更新时间:2023-09-26

我可以使用data()函数将dom元素(或jQuery元素)存储到另一个元素上吗?

是按值存储还是按引用存储?这是好的练习吗?

我希望能够快速轻松地找到主元素的从元素(参见下面的代码),如下所示:

$slave = $('.some .path .to .slave');
$master = $('.some .path .to .master');    
$master.data('slave', $slave);    
$master.click(function (){ $(this).data('slave').toggle() });

(显然代码是愚蠢的,但我实际上是循环通过大量的主和从元素。)

你可以存储任何你想要的,不管你是否需要。

JS变量是对对象的引用,不是吗?(这只是部分修辞;除了引用,DOM查询还会返回什么?)深拷贝?)

我知道你可以这样做:

var slavePath=$('.some .path .to .slave');
var master=$('.some .path .to .master').data('slave', slavePath);
master.click(function(){ $($this.data('slave')).toggle()});

仅将选择器存储到从属对象,而不是整个对象。