如何检查DOM元素和/或属性是否有效?

时间:2015-11-07 15:59:53

标签: javascript html dom

我有一系列元素:
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,但请考虑这个问题脚本语言不可知。

1 个答案:

答案 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