我正在处理一个动态创建一组按钮的脚本,所有这些按钮都是使用类属性创建的,这样我就可以设置它们的样式。但造型从未起作用。
我添加了类似的值:button.class = "foo";
其中button
是对DOM中<button>
元素的引用。
我将上面的代码更改为button.setAttribute("class", "foo");
并且它有效!
但这让我感到困惑,因为我使用点符号(或对象属性表示法?我不知道该怎么称呼它)来设置其他值,例如属性value
。
例如,我在某些按钮上有一个事件监听器。单击它们后,value
属性将添加到元素中。当它再次被点击时,它被删除了:
button.onclick = function() {
if (this.value)
this.removeAttribute("value");
else
this.value = "bar";
}
以上工作符合预期。
所以我的问题是 - 为什么像button.class = "foo";
这样的符号似乎与某些属性有关而不与其他属性有关?有没有办法找到哪些属性将使用该表示法正确运作?
答案 0 :(得分:1)
您需要使用className
属性来获取和设置指定元素的class
属性的值。
名称
className
用于此属性而不是class
,因为与用于操作DOM的许多语言中的“class”关键字冲突。
button.className= "foo"