javascript - 如何确定字符串是否是有效的 html4 tagName?

标签 javascript html dom

给定一个字符串,'div' 或 'abc',有什么方法可以确定该字符串是否是有效的 html4 标签名称?

尝试使用 document.createElement() ,但它对任何事情都很满意:

document.createElement('trash')
=> <trash></trash>

不能使用HTML<tag>Element .例如

document.createElement('tbody')
=> HTMLTableSelectorElement

最佳答案

最好的 方法是获取所有有效 HTML4 元素的列表并进行检查。这将在 100% 的时间内为您提供“有效的 HTML4 元素”的正确结果。 From here :

var html4 = ["A","ABBR","ACRONYM","ADDRESS","APPLET","AREA","B","BASE","BASEFONT","BDO","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","DD","DEL","DFN","DIR","DIV","DL","DT","EM","FIELDSET","FONT","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HR","HTML","I","IFRAME","IMG","INPUT","INS","ISINDEX","KBD","LABEL","LEGEND","LI","LINK","MAP","MENU","META","NOFRAMES","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","P","PARAM","PRE","Q","S","SAMP","SCRIPT","SELECT","SMALL","SPAN","STRIKE","STRONG","STYLE","SUB","SUP","TABLE","TBODY","TD","TEXTAREA","TFOOT","TH","THEAD","TITLE","TR","TT","U","UL","VAR"];

var valid = html4.indexOf(name.toUpperCase()) !== -1;

如果您出于某种原因绝对不想这样做,或者实际上并不是指 HTML4,并且不担心 IE8 的兼容性,那么您可以这样做:

var valid = !(document.createElement(name) instanceof HTMLUnknownElement);

关于javascript - 如何确定字符串是否是有效的 html4 tagName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421284/

相关文章:

php - IE 所需的 CSS/Javascript 下拉导航修复

html - 垂直对齐 Flexbox 元素,不会在元素之间造成幻象空白

jQuery 创建整个 DOM 结构

c# - 使用 IE 插件浏览器帮助程序对象 (BHO) 访问 Frame 或 Iframe 中的数据

java - div标签不显示任何结果

javascript - JS - 为与 querySelectorAll 匹配的所有元素添加单击事件监听器

html - 在背景图像上放置不可见链接

html - 为什么DOM中Attr继承自Node?

javascript - 单击选择元素时 Bootstrap4 下拉菜单自动折叠

html - 如何在 bootstrap 中将 3 个框居中