给定一个字符串,'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/