Я согласен с ответом от zacherates.
Но вы можете сделать вызов intern () в ваших нелиберальных строках.
Из примера zacherates:
// ... but they are not the same object
new String("test") == "test" ==> false
Если вы ставите нелитеральное равенство строки, это правда
new String("test").intern() == "test" ==> true
В математике и логике фраза «есть один и только один» используется для обозначения того, что существует ровно один объект с определенным свойством.
# div1 #loading
не устраняет тот факт, что у вас есть два экземпляра #loading
в вашем документе . Так что нет, не делай этого.
Это нормально? Нет.
Это рекомендуется? Точно нет! На самом деле это запрещено (но контроль над ним слабый).
Но это (очевидно) работает, так что ...
Идентификатор используется для различения элементов, они должны быть уникальными по разным причинам, одна из них - использование javascript, такая функция, как getElementById, не будет работать, если у вас есть повторяющийся идентификатор. , вы не сможете предсказать, что он будет делать в другом браузере, поскольку JS реализуется самостоятельно в каждом браузере по-разному.
Если вы хотите использовать такую структуру, как #div loading и # div2 loading, кажется очевидным, что обе загрузки имеют одинаковое использование, поэтому они должны быть классами и будут использоваться следующим образом
# div1.loading и # div2.loading
Также одним плюсом использования этого синтаксиса было бы использование общего стиля.загрузка, подобная этой
.loading {стиль, общий для обеих загрузок}
# div1.loading {стиль, используемый только при загрузке в div1}
# div2.loading {стиль, используемый только при загрузке в div2}
Да, вы правы, так делать не рекомендуется. Идентификатор всегда должен быть уникальным (например, если вы хотите выбрать элемент с помощью javascript). Если вы просто хотите добавить одинаковый стиль к div'ам, просто используйте css class.
Просто потому, что никто другой его не опубликовал - спецификация HTML, раздел по идентификатору , в котором говорится:
id = name [CS]
Это атрибут присваивает имя элемента. Это имя должно быть уникальным в документе.
идентификатор должен (должен) быть уникальным !!
у вас будут проблемы с выбором его через JS в большинстве браузеров - лучше использовать класс
Основная причина - манипуляции с DOM в JavaScript. В вашем случае, если вы сделаете что-то вроде этого ...
document.getElementById("loading")
... JavaScript вернет первый элемент и только первый элемент. У вас не будет возможности получить доступ к остальным без серьезной прогулки по DOM.
Идентификаторы должны быть уникальными, поэтому id1 и id2 подходят, но для многих элементов с одинаковым стилем используйте класс HTML и селектор классов CSS:
.loading
{
styles here
}
Их можно повторять столько раз, сколько вы хотите страница:)
проверка и пуристизм в сторону, это совершенно функционально. Но я определенно был бы раздражен, если бы я использовал этот #loading id и обнаружил, что эффект jquery или эффект css применяется к более чем 1 элементу. Скажите мне, IE6 или 7 или Firefox 1.x или 2.x разрушают этот код.
Измените свой идентификатор на класс. Не рекомендуется указывать повторяющийся идентификатор.
Представьте, что у двух учеников в классе один и тот же список ответов. Представьте, что они получают результат обследования. Как школа сможет распознать оценочную ведомость?
Ваш способ несовместим с разными браузерами и сильно повлияет на кодирование 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...
}