2009-08-14 6 views
1

Можно ли иметь имена id для дочерних элементов элемента, такие как идентификаторы дочерних элементов другого элемента, если родительский идентификатор отличается? Любой потенциальный конфликт?Повторяющиеся идентификаторы дочерних элементов

+0

... Я смущен, не могли бы вы привести пример? – marcgg

ответ

9

Нет, элемент id s должен быть уникальным на всем протяжении документа. document.getElementById() не будет работать с дубликатом id s (очевидно, поскольку он возвращает только один элемент). Теперь ваша страница, вероятно, будет работать с дубликатом id, это не похоже на то, что браузер столкнется или откажется отображать страницу или что-то еще, но это не правильный HTML.

Если вам нужны не уникальные идентификаторы, используйте атрибут class. Именно для этого нужно пометить несколько элементов с тем же именем.

2

Это очень плохая практика и может вызвать ошибки. Лучшим решением было бы использовать классы для различения дочерних объектов, а затем спуститься с родительского идентификатора, чтобы найти искомый элемент.

1

Идентификатор всегда должен быть уникальным, независимо от контекста HTML или Javascript. Вы намного лучше с уникальным идентификатором. Например, у вас есть несколько элементов с идентификатором с именем «foo»; в документе.getElementById ("foo") вернет только первый экземпляр этого идентификатора.

1

Если у вас разные элементы DOM с одинаковым идентификатором, это может привести к проблемам в какой-то момент ... не делайте этого, даже думая, что это может сработать.

3

Read the spec:

Этот атрибут [ID] присваивает имя элементу. Это имя должно быть уникальным в документе.

Смежные вопросы