Я понимаю, что идентификатор должен быть уникальным на странице HTML / XHTML.
Мой вопрос, для данного элемента, я могу назначить несколько идентификаторов для него?
<div id="nested_element_123 task_123"></div>
Я понимаю, что у меня есть простое решение с простым использованием класса. Мне просто интересно использовать идентификаторы таким образом.
html
xhtml
standards-compliance
webmat
источник
источник
Ответы:
Нет. Из спецификации XHTML 1.0
источник
Вопреки тому, что все говорили, правильный ответ - ДА
Спецификация селекторов очень ясно об этом:
редактировать
Просто чтобы уточнить: Да, элемент XHTML может иметь несколько идентификаторов, например
но присвоение нескольких идентификаторов одному и тому же
id
атрибуту с использованием списка через пробел невозможно.источник
This specification doesn't preclude an element having multiple IDs, if other mechanisms (e.g. DOM Core methods) can set an element's ID in a way that doesn't conflict with the id attribute.
(что соответствует спецификациям CSS)id
атрибута. Для пояснения,xml:id
атрибут (и фактически любой атрибут вне пространства имен по умолчанию) недопустим в XHTML. Однако, как вы цитируете из спецификации HTML5, это никоим образом не приводитxml:id="bar"
к молчаливому сбою; он все равно добавитbar
идентификатор к этому элементу, что позволит ему соответствовать#bar
.Мое понимание всегда было:
Идентификаторы одноразовые и применяются только к одному элементу ...
Классы могут быть использованы более одного раза ...
источник
Нет. Хотя определение из w3c для HTML 4 явно не охватывает ваш вопрос, определение атрибута name и id говорит, что в идентификаторе нет пробелов:
источник
Нет. Каждый элемент DOM, если он имеет идентификатор, имеет один уникальный идентификатор. Вы можете приблизить это, используя что-то вроде:
а затем используйте навигацию, чтобы получить то, что вы действительно хотите.
Если вы просто хотите применить стили, лучше использовать имена классов.
источник
Вы можете иметь только один идентификатор на элемент, но у вас может быть несколько классов. Но не используйте несколько атрибутов класса, поместите несколько значений класса в один атрибут.
совершенно законно.
источник
Нет, вы не можете иметь несколько идентификаторов для одного тега, но я видел тег с
name
атрибутом иid
атрибутом, которые некоторые приложения обрабатывают одинаково.источник
Нет, вы должны использовать вложенные DIV, если хотите идти по этому пути. Кроме того, даже если бы вы могли представить, какую путаницу это может вызвать при запуске document.getElementByID (). Какой идентификатор он собирается захватить, если их несколько?
По слегка связанной теме вы можете добавить несколько классов в DIV. Смотрите обсуждение Эрика Майерса на
http://meyerweb.com/eric/articles/webrev/199802a.html
источник
getElementById();
ничего не делает без строки, указывающей, что получить ?!getElementById('foo');
получит элемент с идентификатором foo! Несколько идентификаторов не имеет значения здесь. Было бы все равно искать "фу".источник
http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2
и
Таким образом, «id» должен быть уникальным и не может содержать пробел.
источник
С технической точки зрения я бы хотел сказать «да», поскольку в действительности то, что отображается, всегда зависит от браузера. Большинство браузеров стараются придерживаться спецификаций как можно лучше, и, насколько я знаю, в спецификациях CSS нет ничего против этого. Я только собираюсь поручиться за фактический HTML, CSS, Javascript код, который отправляется в браузер, прежде чем любой другой интерпретатор вступает в.
Однако я также говорю нет, так как каждый браузер, на котором я обычно тестирую, на самом деле не позволяет вам. Если вам нужно убедиться в этом, сохраните следующее в виде файла .html и откройте его в основных браузерах. Во всех браузерах, которые я тестировал на javascript, функция не будет соответствовать элементу. Тем не менее, удалите "hunkojunk" из тега id, и все работает нормально. Образец кода
источник
Нет.
Сказав это, ничто не помешает вам сделать это. Но вы получите противоречивое поведение с различными браузерами. Не делай этого. 1 идентификатор на элемент.
Если вы хотите несколько назначений для элемента, используйте классы (разделенные пробелом).
источник
Это интересно, но, насколько я знаю, ответ - нет. Я не понимаю, зачем вам нужен вложенный идентификатор, поскольку вы обычно пересекаете его с другим элементом с таким же вложенным идентификатором. Если нет, нет никакого смысла, если вы делаете, есть еще очень мало смысла.
источник
Я знаю, что это год, но мне самому было любопытно, и я уверен, что другие найдут свой путь здесь. Простой ответ - нет, как говорили другие до меня. Элемент не может иметь более одного идентификатора, и идентификатор нельзя использовать более одного раза на странице. Попробуйте, и вы увидите, насколько хорошо это не работает.
В ответ на ответ tvanfosson относительно использования одного и того же идентификатора в двух разных элементах. Насколько я знаю, идентификатор можно использовать на странице только один раз, независимо от того, прикреплен ли он к другому тегу.
По определению, элемент, которому нужен идентификатор, должен быть уникальным, но если вам нужны два идентификатора, он не является действительно уникальным и вместо этого нуждается в классе.
источник
классы специально созданы для этого, вот код, из которого вы можете понять
источник
Най.
https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute
id="a b"
<- найти символ пробела в этой VaLuE .Тем не менее, вы можете стилизовать несколько идентификаторов. Но если вы следуете спецификации, ответ - нет.
источник
Идентификаторы должны быть уникальными, поэтому вы должны использовать конкретный идентификатор только один раз на странице. Классы могут использоваться повторно.
проверьте https://www.w3schools.com/html/html_id.asp для получения более подробной информации.
источник
Я не думаю, что вы можете иметь два идентификатора, но это должно быть возможно. Использование одного и того же идентификатора дважды - это другой случай ... как два человека, использующие один и тот же паспорт. Однако у одного человека может быть несколько паспортов ... Я искал это, поскольку у меня есть ситуация, когда у одного сотрудника может быть несколько функций. Скажем, «sysadm» и «координатор команды», имеющие id = «sysadm teamcoordinator», позволили бы мне ссылаться на них с других страниц, так что employee.html # sysadm и employee.html # teamcoordinator приводили к одному и тому же месту ... Однажды кто-то иначе может взять на себя функцию координатора команды, в то время как sysadm остается sysadm ... тогда мне нужно только изменить идентификаторы на странице employee.html ... но, как я уже сказал - это не работает :(
источник