getElementsByClassName令人困惑的问题

时间:2014-10-22 19:04:28

标签: javascript html getelementsbyclassname

有人可以解释getElementsByClassName,因为我以为我正确使用它,但我遇到了问题。例如,以下代码不会使隐藏元素可见:

var actionButtons = document.getElementsByClassName("action_buttons");
for (var i=0; i < actionButtons.length; i++) {        
    actionButtons[i].style.visibilty = "visible";
}

然而,如果我选择Id,我可以更改元素&#39;属性。知道问题是什么吗?

我只有&#34;使用严格声明&#34;到目前为止未使用的变量警告。我肯定有四个按钮元素,类=&#34; action_buttons&#34;。

如果我插入警报(actionButtons [i]);我得到对象HTMLButtonElement四次......

这是相关的HTML:

<button type="button" id="stand_button" class="action_buttons">Stand</button>
<button type="button" id="hit_button" class="action_buttons">Hit</button>
<button type="button" id="double_down_button" class="action_buttons">Double-Down</button>
<button type="button" id="split_button" class="action_buttons">Split</button>

2 个答案:

答案 0 :(得分:2)

您的代码有拼写错误:

style.visibilty

应该是:

style.visibility

答案 1 :(得分:0)

您发布的代码很好,但只有在HTML中存在类名为“action_buttons”的元素时才能使用。否则肯定会抛出错误。请参阅浏览器控制台以检查错误,在chrome中按f12打开控制台。

可能是您在JavaScript或HTML中错误拼写了类名。

在按钮元素的情况下应该是这样的:

HTML

<button class="action_buttons">Button</button>

的JavaScript

var buttons=document.getElementsByClassName("action_buttons")

此外,您不需要在内部循环中进行if(true)检查。