HTML中有一些属性是"boolean" - 如果存在,浏览器会将它们视为"true",而不管它们是什么值.在标签上选择这种属性的示例.另一种是检查上
.
如果你有一个setAttribute()
这样的属性的调用,似乎没有值可以设置让浏览器一致地表现,就像缺少属性一样.
例如
option.setAttribute("selected", false)
仍将标记所选的选项.null,空字符串或undefined也不起作用.如果有人知道我可以设定的价值来实现我的目标,请告诉我,但我认为不存在.(因为我使用了一些框架代码,而不是调用setAttribute()
,或者调用removeAttribute()
很困难.)
我试图在特殊情况下找到这些属性的详尽列表.这是我到目前为止所拥有的:
选中的
检查的
禁用,只读的,
,
,
,
,
多重的
请帮我填写此列表 - 或者指向现有的列表.
(由于我使用的一些框架代码,不调用setAttribute(),或调用removeAttribute()很困难.)
然后我会提交框架代码需要修复或转储.
按设计,您无法通过setAttribute取消设置属性.如果碰巧在任何特定浏览器中工作,那么您发现任何涉及带外值的解决方案(如"null")将根据DOM Core标准完全无效.
无论如何,在浏览器(非XML)HTML上下文中最好避免使用setAttribute().IE pre-8不知道DOM属性和JavaScript属性之间的区别,这很容易导致许多非常奇怪的问题.如果你试图将'checked'设置为一个属性(理论上你应该把它设置为字符串"checked"),不要指望IE合作.
HTML 4.01(以及XHTML 1.0)中的布尔属性的完整列表是(具有不同的属性名称):
checked (input type=checkbox/radio) selected (option) disabled (input, textarea, button, select, option, optgroup) readonly (input type=text/password, textarea) multiple (select,input) ismap isMap (img, input type=image) defer (script) declare (object; never used) noresize noResize (frame) nowrap noWrap (td, th; deprecated) noshade noShade (hr; deprecated) compact (ul, ol, dl, menu, dir; deprecated)