HTML数据属性是否可以保存对DOM元素的引用?

J-b*_*bob 9 html javascript jquery html5 dom

是否可以使用HTML data-属性来保存对另一个DOM元素的引用.例如,可以使用jquery:

var domel1 = document.getElementById("#mydiv")
var domel2 = document.getElementById("#mydiv2")
$(domEl1).attr('data-domel', domel2)
Run Code Online (Sandbox Code Playgroud)

然后,我会用jquery做:

var domel1 = document.getElementById("#mydiv")
var domel2 = $(domel2).data('domel')
$(domel2).html("blahblahblah")
Run Code Online (Sandbox Code Playgroud)

这可能看起来像一个简单的例子,因为我可以domel2像我最初那样引用domel2 ,但有些情况下这可能对表示div之间的关系很有用.

Zhi*_*hao 9

是的,不是.您不能在data-属性中存储对DOM元素的引用.但是,您可以使用jQuery将对DOM元素的引用与另一个元素相关联.data(),这些元素已经在使用:

$someElement.data('name', someOtherElement);
Run Code Online (Sandbox Code Playgroud)

从jQuery文档:

.data()方法允许我们以一种不受循环引用安全的方式将任何类型的数据附加到DOM元素,从而避免内存泄漏.

请注意,使用.data()设置数据会将其添加到数据存储中,但不会将其作为data-DOM中的属性添加.但是,使用.data()读取数据将检查数据存储以及data-属性(如果存在,并且给定键没有数据存储值).