我知道,两个要素无法拥有相同的ID。但这是如此,在我的项目中,我有两个元素在其他div中具有相同的ID,这样

<div id="div1">
     <img id="loading" />
</div>
<div id="div2">
     <img id="loading" />
</div>

和CSS:

#div1 #loading
{
    some style here...
}
#div2 #loading
{
    another style here...
}

对我来说正常工作,但也许不是这样做的?

谢谢

更新

是的,我知道,我可以使用课程,并且强烈建议这样做,但是我想知道这种ID的用法是否有潜在的风险?我想不,因为我写信时是因为

$("#div1 #loading")... 它成为一个独特的元素。不是吗?

最终更新

如果您有理由这样做,请使用建议的Principe! )

有帮助吗?

解决方案 10

https://www.w3.org/tr/1999/rec-html401-199991224/Struct/global.html#adef-id

enter image description here

但!

如果您在项目中需要它,则可以使用它,就像我的建议一样 问题最终更新!

其他提示

将您的ID更改为课程。提供重复的ID不是一个好主意。

认为两个学生在课堂上没有相同的劳动。想象他们得到检查结果。学校将如何识别标记表?

您的方式不兼容交叉浏览器,并且在编码JavaScript时会影响很多,并且已发布表格等

您可以使用课程获得相同的效果

<div id="div1">
     <img class="loading" />
</div>
<div id="div2">
     <img class="loading" />
</div>

和CSS:

#div1 .loading
{
    some style here...
}
#div2 .loading
{
    another style here...
}

ID必须 (应该) 是独特的!

您将在大多数浏览器中通过JS选择它 - 更好地使用类

最大的原因是JavaScript Dom操纵。在您的情况下,如果您这样做...

document.getElementById("loading")

... JavaScript将返回第一个元素,而仅返回第一个元素。如果没有严重的DOM步行,您将无法访问其余部分。

仅仅因为没有人发布了它 - HTML规格,ID上的部分, ,说:

id =名称[CS

此属性将名称分配给元素。此名称在文档中必须是唯一的。

是的,您是对的,不建议这样做。 ID应该始终是唯一的(例如,如果要使用JavaScript选择元素)。如果您只想在DIVS中添加相同的样式,只需使用CSS类即可。

独特:

在数学和逻辑中,使用“有一个,只有一个”短语来指示存在一个具有某个属性的对象。

#div1 #loading 没有补救您有两个实例的事实 #loading您的文件. 。所以,不,不要那样做。

ID应该是唯一的,因此ID1和ID2很好,但是对于许多具有相同样式的元素,请使用HTML类和CSS类Selector:

.loading
{
styles here
}

允许将这些重复多次,以便在页面上需要重复多次:)

正常吗?不。

推荐吗?当然不!它实际上是禁止的(但执行薄弱)。

但这(显然)有效,所以...

ID用于区分元素,它们必须出于不同的原因是唯一的,其中之一是使用JavaScript,如果您具有重复的ID,那么诸如getElementById的函数将无法正常工作,您将无法预测它的内容在不同的浏览器上执行JS在每个浏览器上是自我实现的。

如果您希望使用#DIV加载和#Div2加载之类的结构,那么似乎两个加载都有相似的用途,因此它们应该是类,并且会像这样使用

#div1.loading和#div2.loading

同样,使用此语法也是一个加上常见的样式。

#div1.loading {样式仅由Div1中的加载}使用

#div2.loading {样式仅由Div2中的加载}使用

除了验证和纯粹主义之外,它是完全功能的。但是,如果我使用该#loading ID并发现jQuery效果或CSS效应适用于1个以上的元素,我肯定会感到烦恼。请告诉我IE6或7还是Firefox 1.x 1.x或2.x 2.x遗址。

使用我的元素是不好的做法。因为我会提供一些以理解其名称识别的独特之处。第二件事我们在CSS中使用了它,但在JavaScript中,这种不良做法。这堂课和学生的榜样很好。

所以不要这样做。

我不同意人们说始终使用“唯一”的人,这意味着每次您标记一个ID。有时可以接受,例如我正在制作计算器的情况。

JavaScript正在执行数学并将结果输出到DIV中,并使用ID =“ Total”。但是,我需要在两个不同的地方进行相同的“总计”。在这种情况下,为什么我不使用具有相同ID的两个不同的DIV?我在两个框中都需要相同的数字。使用jQuery,我一次执行并输出数学,并且同时填充了两个Div,这就是我想要的。

只要您了解使用相同ID的2个DIV的信息的风险,那么我说可以自由。只要您不混淆自己,需要在同一DIV ID中进行2种不同的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top