可以在Javascript中使用点表示法访问元素属性吗?

时间:2017-02-27 08:03:28

标签: javascript html dom

我正在处理一个动态创建一组按钮的脚本,所有这些按钮都是使用类属性创建的,这样我就可以设置它们的样式。但造型从未起作用。

我添加了类似的值: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";这样的符号似乎与某些属性有关而不与其他属性有关?有没有办法找到哪些属性将使用该表示法正确运作?

1 个答案:

答案 0 :(得分:1)

您需要使用className属性来获取和设置指定元素的class属性的值。

  

名称className用于此属性而不是class,因为与用于操作DOM的许多语言中的“class”关键字冲突。

button.className= "foo"