这对我来说很奇怪:
看看上面从Youtube拍摄的屏幕截图。有人可以解释为多个元素提供相同ID(dismissable
,dismissed
)的目的是什么?这些是右侧的建议视频,而另一个视频正在播放,如下面的屏幕截图所示:
HTML验证器:https://validator.w3.org/显示YouTube和实际上许多Google网站不符合HTML标准。
注意:我测试了HTML的副本,因为使用URL会裁剪一些在加载页面后呈现的HTML。
我分析了所需的页面,它显示了超过1000个html错误。请参阅下面的错误#1001:
关于你的问题。所述ID是重复的,HTML中不允许这样做。该ID用于CSS样式(使用id格式化多个元素是一种不好的做法。良好的做法是使用该类。请参阅:
结论Google网站是专业编程学习者的坏榜样。事实上,我曾经在LinkedIn上写过一篇关于Google如何要求网站遵守一些SEO规则的文章,但是,Google的网站并没有遵循他们自己的SEO规则。有关详细信息,请参阅我在Linkedin上的article。
完全可能有多个具有相同ID的元素。它通常不是最佳实践,但它确实偶尔使用。至于选择器如何工作,如果你知道你将有冲突的ID,你可以使用你的选择器与父母,其中父母下面的ID将是唯一的。例如$('div#car span#size)和$('div#truck span#size')。
实际上,可以使用类替换多个ID。但是,类用于应用样式,而不是标识元素,使名称范围更宽,因此可能重叠。特别是如果使用第三方库。作为“标识符”的ID不打算成倍增加,因此显然需要介于两者之间。实际使用是将页面/ dom的各部分组件化为单独的逻辑单元。因此需要使用(至少)2层识别。