我的Javascript并没有改变className属性

时间:2014-10-07 23:15:27

标签: javascript javascript-events classname

这是我的代码的主要部分,试图在点击我的按钮(btn)时切换p标签(info)上的类。我不确定我做错了什么。我以前从未使用过className属性,所以我不确定我是否遗漏了一些简单的东西,或者我的逻辑中是否存在基本错误,试图尝试这个。

var handler = function(event){
  if(info.className === 'on'){
    info.className='off';
  }else{
    info.className='on';
  }
};

btn.addEventListener('click', handler);

2 个答案:

答案 0 :(得分:1)

您的代码运行正常。您可以运行下面的代码段,看它是否有效。

var btn = document.getElementById("btn"),
    info = document.getElementById("info");

var handler = function (event) {
    if (info.className === 'on') {
        info.className = 'off';
    } else {
        info.className = 'on';
    }
};

btn.addEventListener('click', handler);
.on {
    background-color: red;
}
.off {
    background-color: green;
}
<button id=btn>Button</button>
<p id=info>Info</p>

答案 1 :(得分:0)

什么是信息是id?如果是,如果您使用的是简单的javascript,则将其称为document.getElementById('info'),如果是jquery则为$('#info')。

然而,它听起来也像所有名称元素和类名(info,on,off)作为内置关键字出现。更好地更改名称并再次尝试像infoElem,onClass,offClass这样的类,这些类应该在样式表中再次重命名。