为什么HTMLNavElement不是一个东西?似乎大多数其他元素都有自己的“类型”,但似乎被HTMLNavElement遗漏了。
我最初认为HTMLElements 需要自己的类型来指定底层的语义值。
例如:<input type="radio">继承 的接口HTMLInputElement,这确保元素获得 arole的接口radio,并且 a<div>继承 的接口HTMLDivElement,它不提供额外的功能或语义值。
因为这些元素不公开任何特定的方法/属性。
例如,它们没有像 <div>其align过时的属性 IDL 这样的特定 IDL 属性,该属性仅需要 HTMLDivElements 的DOM 属性:
// HTMLDivElement does expose an align property
console.log(document.querySelector('div').align); // "center"
// HTMLElement doesn't
console.log(document.querySelector('nav').align); // undefinedRun Code Online (Sandbox Code Playgroud)
<div align="center"></div>
<nav align="center"></nav>Run Code Online (Sandbox Code Playgroud)