有没有办法检查某些HTML属性是否为布尔值?例如:
<input type="text" name="input" disabled=""/>
这里disabled
属性是布尔值,我有一些代码,我需要在设置值之前检查该属性是否为布尔值。
为什么我需要这个?
如上所述here,我们可以将""
或属性名称本身作为有效值,而不是true
或false
。
答案 0 :(得分:2)
HTML的水平基本上没有区别。如果该属性只是没有值的名称,例如<input disabled>
,这确实表明它是一个布尔属性。但是,如果它使用name="value"
表示法,那么就无法区分它。 class="class"
是布尔属性吗?不,它是classList
,其中包含一个条目"class"
。 foo=""
怎么样?好吧,它既可以选择空值表示法的布尔属性,也可以选择没有设置值的属性。
只有解释器为属性分配boolean-ness;即,在将HTML解析为DOM时,解释器会像这样设置DOM属性,粗略地说:
domElement.disabled = htmlElement.hasAttribute('disabled');
如果你想知道哪些HTML元素是布尔值,你需要做一个解释器做的事情:保留一个DOM元素列表,其元素的属性有类型,并根据该规范解释HTML。
答案 1 :(得分:0)