我可以使用 data()函数将dom元素(或jQuery元素)存储到另一个元素上吗? (见下面的代码)
是按值还是按参考存储?这是好的做法吗?
我希望能够快速轻松地找到主元素的slave元素(参见下面的代码),如下所示:
$slave = $('.some .path .to .slave');
$master = $('.some .path .to .master');
$master.data('slave', $slave);
$master.click(function (){ $(this).data('slave').toggle() });
(显然代码是愚蠢的,但我实际上是在循环很多主从元素。)
答案 0 :(得分:3)
无论你是否应该存储,你都可以存储任何你想要的东西。
JS变量是对象的引用,不是吗? (这只是部分修辞 - 除了引用之外,DOM查询还会返回什么?深层复制?)
答案 1 :(得分:0)
我知道你可以这样做:
var slavePath=$('.some .path .to .slave');
var master=$('.some .path .to .master').data('slave', slavePath);
master.click(function(){ $($this.data('slave')).toggle()});
只需将选择器存储到从属设备,而不是整个对象。