为什么这些Youtube元素(建议列表项)具有相同的ID

时间:2019-02-05 12:36:57

标签: html html5 youtube id

这对我来说很奇怪:

enter image description here

看看上面从Youtube截取的屏幕截图。有人可以说明为多个元素使用相同的ID(dismissabledismissed)有什么目的吗? 这些是右侧的建议视频,正在播放另一个视频,如下面的屏幕截图所示:

enter image description here

3 个答案:

答案 0 :(得分:6)

HTML验证器:https://validator.w3.org/显示 YouTube和许多Google网站实际上都不符合HTML。

注意:我测试了HTML的副本,因为使用URL会裁剪一些在页面加载后呈现的HTML。

我分析了所需的页面,结果显示了1000多个html错误。请参阅下面的错误#1001:

enter image description here

关于您的问题。所述ID是重复的,在HTML中是不允许的。该ID用于CSS样式设置(使用ID格式化多个元素是一种不好的做法。好的做法是使用该类。请参见: enter image description here

结论 对于专业编程的学习者而言,Google网站是不好的例子。实际上,我曾经在LinkedIn上发表过一篇文章,其中介绍了Google如何要求网站遵守某些SEO规则,但是,并非Google的网站都遵循自己的SEO规则。有关更多详细信息,请参见我在Linkedin上的article

答案 1 :(得分:0)

不知道他们为什么使用ID。

只要您在建议的视频中单击不感兴趣,他们就会显示此已被撤消的div,其中包含一些选项,例如 UNDO,告诉我们为什么

Screenshot

答案 2 :(得分:0)

完全可能有多个具有相同ID的元素。通常这不是最佳做法,但确实有其偶尔的用途。至于选择器的工作方式,如果您知道自己会有冲突的ID,则可以将选择器与父级一起使用,其中父级下的ID是唯一的。例如$('div#car span#size)和$('div#truck span#size')。

实际上,可以使用类来替换多个ID。 但是,类旨在用于应用样式,而不是标识元素,从而使名称的范围更加广泛,因此可能会重叠。特别是在使用第三方库的情况下。作为“标识符”的id并不打算相乘,因此显然需要两者之间的某些东西。实际用途是将页面/域的各个部分组成单独的逻辑单元。因此需要使用(至少)两层身份验证。