当我听到 ID 这个词时,我想到的第一件事就是它是独一无二的,那就是ASP.NET服务器标签。但是,如果它不是服务器标签,那么对于多个标签使用相同的id似乎没有错。这是一个问题吗?
答案 0 :(得分:5)
您的DOM选择器将失败。 document.getElementById
只会返回第一个匹配项,而不同的javascript库可能会出现在他们自己的时髦内容中,具体取决于他们对您的选择器进行的解析。此外,使用querySelectorAll
时,不同的浏览器也可能会自行执行。
我建议使用class
属性而不是id
,即使您不打算使用javascript来解决这些元素。在页面上重复相同的id
仍然是无效代码,并且会导致不确定的结果。
答案 1 :(得分:1)
不,你不应该重复使用标签,即使它们是服务器端,它们将clientid添加到服务器,但它又应该是唯一的。
无论如何为什么要重用它们?
请参阅以下代码,我们可以将其设为独一无二的
<li id="userID<%# Eval("UserId")%>">
其他例子
<asp:Repeater ID="idtest" runat="server">
<ItemTemplate>
<div id="catID<%# Eval("Id")%>" class="Content">
<ul id="someotherRandom<%# Eval("Id").ToString()%>" style="width:364px;">
</ul>
</div>
</ItemTemplate>
</asp:Repeater>
答案 2 :(得分:1)
这是一个问题吗?
它不会验证:HTML元素的ID应该是唯一的。很难超链接到ID不唯一的元素。
答案 3 :(得分:1)
ID应该是唯一的。如果您需要识别重复的标记,那么您需要给它一个类。 class属性用于标识页面上的多个项目。