为多个标签提供相同的ID是一种好习惯吗?

时间:2011-03-04 06:23:29

标签: javascript asp.net html

当我听到 ID 这个词时,我想到的第一件事就是它是独一无二的,那就是ASP.NET服务器标签。但是,如果它不是服务器标签,那么对于多个标签使用相同的id似乎没有错。这是一个问题吗?

4 个答案:

答案 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属性用于标识页面上的多个项目。

相关问题