【发布时间】:2011-11-16 23:57:14
【问题描述】:
我记得有一个 jquery 方法可以为 dom 元素提供唯一编号。它可能仅适用于动画 dom 对象。现在我找不到那个方法了。那是什么方法?还有其他方法可以为元素提供唯一编号吗?
【问题讨论】:
-
这个其他堆栈溢出问题可以帮助你吗? stackoverflow.com/questions/3298500/…
标签: javascript jquery unique
我记得有一个 jquery 方法可以为 dom 元素提供唯一编号。它可能仅适用于动画 dom 对象。现在我找不到那个方法了。那是什么方法?还有其他方法可以为元素提供唯一编号吗?
【问题讨论】:
标签: javascript jquery unique
我想您可能正在考虑jQuery.expando 的概念。每个运行 jQuery 的页面上都有一个名为 jQuery.expando 的属性。它是这样定义的:
expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
所以对我来说,在当前页面上,它是jQuery15209244967177268291。任何存储了任何数据的元素(包括存储为数据的事件处理程序)都具有具有该名称的属性。这包含一个唯一编号,它是全局数据缓存中该元素的键。
例如,屏幕左上角的全局 StackExchange 收件箱:
$('.genu')[0].jQuery15209244967177268291 === 29
你可以用$('.genu')[0][jQuery.expando] 来模仿这个;我不确定你是否会得到相同的号码。 (编辑:我每次都不是同一个数字。)
但请注意,并非每个 元素都有唯一编号,只有那些附有数据的元素才有唯一编号。这可能符合您的目的,也可能不符合您的目的...
【讨论】:
唯一看起来像您可能追求的东西是jQuery.unique(),但即使这样也不能满足您的建议。我鼓励您更新您的问题以说明这样做的目的,因为可能有更好的方法来解决提示您为每个元素获取唯一编号的问题。
【讨论】: