我有一系列元素:
var elements = ['div', 'a', 'p', 'foo']
我还有一系列属性:
var attributes = ['src', 'href', 'quux', 'id']
我想了解如何验证上述组合是否会成为有效的DOM对象。
或者,换句话说:
如何根据DOM模式验证DOM对象? *
例如(基于以上元素和属性):
DOM_result = '<div src />'; // = false
DOM_result = '<div href />'; // = false
DOM_result = '<div quux />'; // = false
DOM_result = '<div id />'; // = true
DOM_result = '<a src />'; // = false
DOM_result = '<a href />'; // = true
DOM_result = '<a quux />'; // = false
DOM_result = '<a id />'; // = true
etc...
* =不确定这是否称为 DOM架构。
PS:
在我的例子中,我使用的是JS,但请考虑这个问题脚本语言不可知。
答案 0 :(得分:5)
大多数内容属性都是reflected,IDL属性(a.k.a属性)具有相同的名称。
这些IDL属性在元素继承的接口中实现为访问器属性(即getter和setter)。
因此,您可以创建所需类型的元素并检查它是否具有所需的属性:
'src' in document.createElement('div'); // false
'src' in document.createElement('img'); // true
注意IDL属性不区分大小写,有些名称与内容属性不同,例如您应该检查className
而不是class
。