【问题标题】:Change class of element using javascript [duplicate]使用javascript更改元素类[重复]
【发布时间】:2013-02-26 04:12:47
【问题描述】:

我很难根据select 标记中的选定项目更改元素类别。这是我的代码:

<table> 
    <tr>
        <select onchange="wow(this.value)">
            <option value="a">a</option>
            <option value="b">b</option>            
        </select>
    </tr>               
    <tr id="x" class="show">
        x
    </tr>
</table>

<script>
function wow(value){
    switch(value){
        case "a": document.getElementById("x").className = "show"; break;       
        case "b": document.getElementById("x").className = "hide"; break;
    }
}
</script>

<style>
.show{
    display:inline-block;
}

.hide{
    display:none;
}
</style>

我认为这里没有任何问题。我也试过setAttribute("class", "show"),但还是不行。

【问题讨论】:

  • @GlennFerrieLive 这是一个 jQuery 示例。
  • 您缺少开关的case 部分。

标签: javascript onchange html-select


【解决方案1】:

您必须将X 包装在&lt;td&gt; 中:

http://jsfiddle.net/DerekL/CVxP7/

<tr>...<td id="x" class="show">x</td></tr>

另外你必须在"a":前面加上case

case "a":
    document.getElementById("x").setAttribute("class", "show");
    break;

PS:有一种更有效的方法可以实现您在这里尝试做的事情:

http://jsfiddle.net/DerekL/CVxP7/2/

function wow(value) {
    var index = {
        a: "show",
        b: "hide"
    };
    document.getElementById("x").setAttribute("class", index[value]);
}

现在您无需输入两次document.getElementById("x").setAttribute("class"...

【讨论】:

【解决方案2】:

试试这个

switch(value){
    case "a": document.getElementById("x").setAttribute("class", show); break;        
    case "b": document.getElementById("x").setAttribute("class", hide); break;
}

【讨论】:

  • show 未定义。
猜你喜欢
相关资源
最近更新 更多
热门标签