Нормально ли иметь два элемента с одинаковым идентификатором в двух элементах div с другим идентификатором: обновлено - PullRequest
13 голосов
/ 22 июня 2010

Я знаю, что два элемента не могут иметь одинаковый идентификатор.Но случается так, что в моем проекте у меня есть два элемента с одинаковым идентификатором в других div, как это

<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...
}

отлично работает для меня, но возможноэто не рекомендуется делать так?

Спасибо

ОБНОВЛЕНИЕ

Да, я знаю, что я могу использовать классы, и настоятельно рекомендуется делать это, ноя хочу знать, есть ли потенциальный риск при использовании идентификатора?я думаю нет, потому что когда я писал, например,

$("#div1 #loading")..., это становится уникальным элементом.не так ли?

Окончательное обновление

Используйте предложенный принцип, если у вас есть для этого причины!;)

Ответы [ 13 ]

0 голосов
/ 15 октября 2015

Это плохая практика использования я на элементе. Потому что я бы дал что-то для понимания уникальное с их идентификацией имени. И второе, мы используем его в CSS, но в JavaScript это плохая практика. Так что хороший пример для этого класса и ученика.

Так что не делай этого.

0 голосов
/ 10 мая 2012

Я не согласен с тем, что люди говорят, что всегда используют «уникальный», что означает разные идентификаторы каждый раз, когда вы их называете.Иногда это приемлемо, например, в моем случае, когда я делаю калькулятор.

Javascript выполняет математику и выводит результат в div с id = "total".Мне нужно, чтобы тот же самый «итог» находился в 2 разных местах.В таком случае, почему бы мне не использовать два разных div с одинаковым идентификатором?Мне нужно одно и то же число в обеих коробках.С помощью jQuery я выполняю и выводлю математику один раз, и она заполняет оба div одновременно, и это то, что я хочу.

Пока вы понимаете риски, когда вы извлекаете информацию из этих 2 div с помощьютот же ID, то я говорю, не стесняйтесь.Если вы не путаете себя и нуждаетесь в 2 разных результатах в одном и том же идентификаторе div.

0 голосов
/ 23 июня 2010

валидация и пуристизм в стороне, это совершенно функционально. Но я определенно был бы раздражен, если бы я использовал этот идентификатор #loading и обнаружил, что эффект jquery или эффект css применим к более чем одному элементу. Скажите мне, если IE6 или 7 или Firefox 1.x или 2.x испортили этот код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...