我明白,与类不同,ID在HTML文档中应该是唯一的。如果我对多个HTML元素多次使用相同的id会发生什么?它会抛出任何错误吗?还是根本行不通?
我试着尝试这个场景,但想知道更多关于它的背景。
这是无效的HTML。
在某些环境中,它可能会产生控制台警告,警告单个文档中的多个id无效。无害,但令人讨厌。
它将阻止document.getElementById
对这些元素正常工作,因为getElementById
根据ID进行选择,但文档中应该只有一个具有给定ID的元素。同样地,它也可能会阻止querySelector
和querySelectorAll
的ID选择器正常工作。
是的,不像html类,我们不能在多个html元素中应用相同的id,它不会抛出任何错误,但只有第一个具有id的元素会起作用,其他元素将不起作用
$('#foo').on('click',function(){
alert('work')
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="foo">Click me</div>
$('#foo').on('click',function(){
alert(' work')
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="foo">Click me(work)</div>
<div id="foo">Click me(won't work)</div>
<div id="foo">Click me(won't work)</div>
我已经尝试过了,如果我们为多个元素设置相同的id名称它会改变id相同的属性
什么都没发生。JavaScript和CSS选择器只会选择它们找到的第一个带有id的元素。你的网站又不会崩溃。这是非常糟糕的做法,因为每个页面的id都应该是唯一的。