jquery 我是否可以使用UUID作为HTML标记ID而不会出现任何问题?

olhwl3o2  于 2022-12-03  发布在  jQuery
关注(0)|答案(3)|浏览(175)

我有动态内容,可以通过侧窗格上的索引访问,当用户选择侧窗格元素时,我使用id作为一种机制来判断他们引用的是什么数据,这样我就可以为主窗格动态生成适当的数据。
我只是使用了一个附加了数字的预先格式化的id,其中数字是数组中的索引,这样就为html标签创建了唯一的id。但是在某些情况下,我会与数字发生冲突,所以我一直在想使用UUID将是解决我的问题的一种方法。
但是,我不知道使用UUID作为html标记ID是否有任何问题。
根据我对有效字符和长度限制的了解,我相信立即和快速的答案是它应该工作。版本4使用字符0-9,a-z和- which,afaict作为HTML标记id的有效字符。而且长度似乎也不是问题。
我主要关心的是浏览器是否存在限制id有效大小的问题?运行一个测试并创建一个值为2d1b8447-e37a-43d8-9f7c-075eac7d9bcc的单个id,甚至创建一个包含多个id的测试都可以。但我无法测试所有将使用该应用的浏览器,而且很难随时间推移测试性能。我的内容是非常动态的,带有这些id的标签可以随时间推移而删除和添加
我试着搜索报告的问题与大标签id和发现什么,但没有问题通过谷歌是不是没有任何问题的证据。
那么......有没有人在html标签上使用UIID的id,如果有,有没有什么问题我需要避免你遇到的?
我应该注意到,有证据表明UUID在indexing (InnoDB)中存在性能问题,我担心的是DOM操作和使用带有UUID ID的jQuery可能会遇到类似的问题。
干杯干杯干杯

bq8i3lrv

bq8i3lrv1#

可以使用data-属性完成同样的事情。
示例:

<a href="#" data-UUID="2d1b8447-e37a-43d8-9f7c-075eac7d9bcc" class="product_link">Some product</a>

使用jQuery读取data-属性:

$('.product_link').click(function(){
     var UUID=$(this).data('UUID');
    /* do something with UUID*/
})
xv8emn3q

xv8emn3q2#

我使用UUID作为元素ID,CSS选择器会失败,因为ID必须以字母而不是数字开头,以便能够对它们执行基于CSS ID选择器的有效查询。

document.querySelectorAll('#fd759ae2-c0ed-4de5-80fd-932c814a53c7 > div') # works
document.querySelectorAll('#81ea82f5-9a6f-4ae3-93e3-a5ef3579c554 > div') # fails
enyaitl3

enyaitl33#

你可以在默认情况下使用它,比如-在一个组件中,你忘记传递一个ID,而你需要提供给一个html元素以实现可访问性。如果你试图在其他情况下使用它,记住uuid在每次运行中都是不同的,所以你不能在css或测试用例中使用这个ID值作为一个固定值。

相关问题