Chrome扩展程序:显示&隐藏元素?

时间:2013-07-10 18:27:01

标签: javascript html google-chrome-extension styles

我正在尝试隐藏页面上可见的按钮,同时显示另一个自动隐藏的按钮(两者都在页面上,我不是添加新的,只是更改可见性)。

这就是现在的样子:

<div class="myAwesomeButtons">
     <button id="first_button" class="blue_button inset_button" style="">First</button>
     <button id="second_button" class="green_button inset_button" style="display: none;">Second</button> 
     <button id="third_button" class="other_button">Third</button>
</div>

我正在尝试删除第一个按钮,并删除第二个按钮上的style属性。如何在Chrome扩展程序中使用JavaScript实现此目的?

我已经按顺序安装了manifest.json文件,但我不知道如何处理其余文件。

这是我尝试过的,但我不确定我做错了什么:

function fixButtons() {
    document.getElementsByClassName("myAwesomeButtons")[0].style.visibility='hidden';
    document.getElementsByClassName("myAwesomeButtons")[1].style.visibility='visible';
}

fixButtons();

2 个答案:

答案 0 :(得分:0)

function fixButtons() {
  var buttonGroup = document.getElementsByClassName("myAwesomeButtons")[0].getElementsByTagName("button");
  buttonGroup[0].style.visibility='hidden';
  buttonGroup[1].style.visibility='visible';
}

答案 1 :(得分:0)

您正在混淆displayvisibility属性。

我尽可能避免使用getElementsByClass,因为它不适用于IE。我知道这是Chrome扩展程序,所以它会起作用。但是,由于每个按钮都有ID,我只使用getElementById

尝试

function fixButtons() {
    var button1 = document.getElementById("first_button");
    button1.style.display= "none";
    var button2 = document.getElementById("second_button");
    button2.style.display= "inline";
}