пример Может ли элемент html иметь несколько идентификаторов?




xhtml пример (14)

Я не думаю, что у вас может быть два ИД, но это должно быть возможно. Использование одного и того же идентификатора дважды - это другой случай ... как два человека, использующих один и тот же паспорт. Однако у одного человека может быть несколько паспортов ... Пришлось искать это, так как у меня есть ситуация, когда один сотрудник может иметь несколько функций. Скажем, «системный администратор» и «координатор команды», имеющий id = «командный координатор sysadm», позволят мне ссылаться на них с других страниц, чтобы сотрудники.html # sysadm и employees.html # teamcoordinator вывели бы одно место ... Однажды кто-то else может взять на себя функцию координатора команды, в то время как sysadm остается sysadm ... тогда мне нужно только изменить идентификаторы на странице employee.html ... но, как я уже сказал, это не работает :(

Я понимаю, что идентификатор должен быть уникальным на странице HTML / XHTML.

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

<div id="nested_element_123 task_123"></div>

Я понимаю, что у меня есть простое решение, просто используя класс. Мне просто любопытно использовать идентификаторы таким образом.


Нет.

Сказав это, вам нечего остановить. Но вы столкнетесь с непоследовательным поведением с различными браузерами. Не делай этого. 1 идентификатор на элемент.

Если вы хотите, чтобы множественные назначения для элемента использовали классы (разделенные пробелом).


Мое понимание всегда было:

  • ID являются одноразовыми и применяются только к одному элементу ...

    • Каждый из них присваивается уникальному идентификатору только одному элементу .
  • Классы могут использоваться более одного раза ...

    • Поэтому их можно применять к более чем одному элементу , и, кроме того, они могут быть разными, может быть более одного класса (т.е. нескольких классов) для каждого элемента .

Нет, вы не можете иметь несколько идентификаторов для одного тега, но я видел тег с атрибутом name атрибутом id которые обрабатываются одними и теми же приложениями.


Най.

w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute

Значение не должно содержать пробелов.

id="ab" <- найти пробел в этом VaLuE .

Тем не менее, вы можете создать несколько идентификаторов. Но если вы следуете спецификации, ответ будет отрицательным.


Я бы хотел сказать технически «да», так как действительно то, что получается, технически всегда зависит от браузера. Большинство браузеров стараются соблюдать спецификации, насколько это возможно, и насколько я знаю, в спецификациях css нет ничего. Я только буду ручаться за фактический код html, css, javascript, который отправляется в браузер, прежде чем какие-либо другие шаги интерпретатора.

Однако я также говорю «нет», поскольку каждый браузер, который я обычно тестировал, на самом деле не позволяет вам. Если вам нужно самому убедиться, сохраните следующее как .html-файл и откройте его в основных браузерах. Во всех браузерах, которые я тестировал по функции javascript, не будет соответствовать элементу. Однако удалите либо «hunkojunk» из тега id, и все работает отлично. Образец кода

<html>
<head>
</head>
<body>
    <p id="hunkojunk1 hunkojunk2"></p>

<script type="text/javascript">
    document.getElementById('hunkojunk2').innerHTML = "JUNK JUNK JUNK JUNK JUNK JUNK";
</script>
</body>
</html>

Нет, вам нужно использовать вложенные DIV, если вы хотите пропустить этот путь. Кроме того, даже если бы вы могли представить себе путаницу, возникшую при запуске document.getElementByID (). Какой идентификатор он собирается захватить, если их несколько?

В слегка связанной теме вы можете добавить несколько классов в DIV. См. Обсуждение Эрика Майерса,

http://meyerweb.com/eric/articles/webrev/199802a.html


http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2

Атрибут id присваивает уникальный идентификатор элементу (который может быть проверен синтаксическим анализатором SGML).

а также

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_») , colons (":") и периоды (".").

Поэтому «id» должен быть уникальным и не содержать пробела.


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

В ответ на ответ tvanfosson относительно использования одного и того же идентификатора в двух разных элементах. Насколько мне известно, идентификатор можно использовать только один раз на странице, независимо от того, привязан ли он к другому тегу.

По определению элемент, нуждающийся в идентификаторе, должен быть уникальным, но если вам нужны два идентификатора, он не уникален и ему нужен класс.


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

<div id='enclosing_id_123'><span id='enclosed_id_123'></span></div>

а затем используйте навигацию, чтобы получить то, что вы действительно хотите.

Если вы просто хотите применить стили, имена классов лучше.


Any ID assigned to a div element is unique.
However, you can assign multiple IDs "under", and not "to" a div element.
In that case, you have to represent those IDs as <span></span> IDs.

Say, you want two links in the same HTML page to point to the same div element in  the page.

The two different links
<p><a href="#exponentialEquationsCalculator">Exponential Equations</a></p>         

<p><a href="#logarithmicExpressionsCalculator"><Logarithmic Expressions</a></p>

Point to the same section of the page. 
<!-- Exponential / Logarithmic Equations Calculator -->
<div class="w3-container w3-card white w3-margin-bottom">      
   <span id="exponentialEquationsCalculator"></span>
   <span id="logarithmicEquationsCalculator"></span>
</div>

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


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

<div id="foo" class="bar baz bax">

является совершенно законным.


Нет. Из спецификации XHTML 1.0

В XML идентификаторы фрагментов имеют идентификатор типа, и для каждого элемента может быть только один атрибут идентификатора типа. Поэтому в XHTML 1.0 атрибут id определяется как идентификатор типа. Чтобы документы XHTML 1.0 были хорошо структурированными XML-документами, документы XHTML 1.0 ДОЛЖНЫ использовать атрибут id при определении идентификаторов фрагментов над перечисленными выше элементами. См. Руководство по совместимости HTML для получения информации о том, что такие якоря совместимы с обратной связью при работе с документами XHTML в виде текста типа text / html.





standards-compliance