作为前端开发人员,你知道html中总共有多少种元素吗?

提出这个问题,你最先想到的是如何解决这个问题呢,说实话,我最开始找的百度,于是乎。

好家伙,下面一顿噼里啪啦,五花八门的答案,来看一下

 

 

 

 

百度知道的一种答案89个

 

 

 

 这个回答是158个。其他的就不一一列举了。

 

下面看一个权威的网站:https://html.spec.whatwg.org/multipage/indices.html#elements-3

这个是html目前的标准网站

 

 笔者把它粘贴到表格里数了一下,发现有114个标签。

哈哈,这下找到正确答案了,还没结束,接下来又发现一个由意思的。

其实笔者又想到了一个思路,就是看html元素的构造函数的原型是否继承自 HTMLElement,

1 let flag =   HTMLBodyElement.prototype instanceof HTMLElement
2 //flag = true
3 
4 
5 Object.getOwnPropertyNames(window).map(name=>window[name] && window[name].prototype).filter(o=>o).filter(i=>i instanceof HTMLElement)
6 
7 //(75) [HTMLOptionElement, HTMLImageElement, 
//HTMLAudioElement, HTMLVideoElement, HTMLUnknownElement,
//HTMLUListElement, HTMLTrackElement, HTMLTitleElement, HTMLTimeElement, HTMLTextAreaElement, HTMLTemplateElement, HTMLTableSectionElement,
//HTMLTableRowElement, HTMLTableElement,
// HTMLTableColElement, HTMLTableCellElement,
//HTMLTableCaptionElement, HTMLStyleElement,
//HTMLSpanElement, HTMLSourceElement, HTMLSlotElement,
//HTMLShadowElement, HTMLSelectElement, HTMLScriptElement,
//HTMLQuoteElement, HTMLProgressElement, HTMLPreElement,
//HTMLPictureElement, HTMLParamElement,
//HTMLParagraphElement, HTMLOutputElement,
//HTMLOptionElement, HTMLOptGroupElement,
//HTMLObjectElement, HTMLOListElement, HTMLModElement,
//HTMLMeterElement, HTMLMetaElement, HTMLMenuElement,
//HTMLMediaElement, HTMLMarqueeElement, HTMLMapElement,
//HTMLLinkElement, HTMLLegendElement, HTMLLabelElement,
//HTMLLIElement, HTMLInputElement, HTMLImageElement,
//HTMLIFrameElement, HTMLHtmlElement, HTMLHeadingElement,
//HTMLHeadElement, HTMLHRElement, HTMLFrameSetElement,
//HTMLFrameElement, HTMLFormElement, HTMLFontElement,
//HTMLFieldSetElement, HTMLEmbedElement, HTMLDivElement,
//HTMLDirectoryElement, HTMLDialogElement,
//HTMLDetailsElement, HTMLDataListElement, HTMLDataElement,
//HTMLDListElement, HTMLContentElement, HTMLCanvasElement,
//HTMLButtonElement, HTMLBodyElement, HTMLBaseElement,
//HTMLBRElement, HTMLAudioElement, HTMLAreaElement,
//HTMLAnchorElement]

 

结果发现是75?

和官方不一样

哎,到底哪个是对的呢?

可以和我一起讨论讨论。

 

posted on 2020-12-24 23:19  yinjiali  阅读(208)  评论(0)    收藏  举报