Почему метод tagName в JavaScript возвращает HTML-теги заглавными буквами? - PullRequest
0 голосов
/ 16 октября 2018

Почему метод tagName в JavaScript возвращает HTML-теги заглавными буквами?HTML-теги должны быть написаны маленькими буквами.

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Более старые версии HTML , когда JavaScript был впервые создан, использовали все заглавные буквы для имен тегов по соглашению вместо сегодняшних строчных букв.Для обеспечения обратной совместимости со старым кодом tagName() по-прежнему возвращает все заглавные буквы и застрял таким образом.

0 голосов
/ 17 октября 2018

В завершение обратите внимание, что tagName :

Возвращает имя тега элемента, для которого он вызывается.Например, если элемент является свойством, его свойство tagName является «IMG» (для документов HTML; для документов XML / XHTML он может быть представлен иначе).

См. Ниже результат с svg:

[...document.querySelectorAll("*")].forEach(function(el){
  console.log(el.tagName);
});
 <svg width="300px" height="300px" 
    xmlns="http://www.w3.org/2000/svg">
    <text x="10" y="50" font-size="30">My SVG</text>
  </svg>
0 голосов
/ 16 октября 2018

Поскольку это как определяется tagName :

Получатель атрибута tagName должен возвращать объект контекста * в верхнем регистре HTMLквалифицированное имя .

Имена тегов HTML (и имена атрибутов) не чувствительны к регистру, но каноническая версия имени тега указана всеми заглавными буквами, независимо от того, как HTML-код создал элементбыло написано:

document.querySelectorAll("div").forEach(function(div) {
  console.log(div.tagName);
});
<div></div>
<DIV></DIV>
<Div></Div>

Это очень удобно, так как это означает, что код, смотрящий на tagName, не должен вызывать toUpperCase (или toLowerCase) перед выполнениемсравнение, если необходимо знать, соответствует ли тег определенному имени тега.Например, if (element.tagName === "DIV") надежен в HTML-страницах.

...