2017-05-03 88 views
0

试图增加一类,让驳回通知的效果..添加类不会覆盖当前类

,所以我有这个

<div onclick="ifRead()" id="messageList"> 

     </div> 

,然后当我点击一个按钮来查看邮件一类被添加

<div onclick="ifRead()" id="messageList" class=" readClass"> 

     </div> 

那么如果我点击该邮件从大胆的font-weight改变正常这是正确的,但background-color不改变EV恩,虽然我已经告诉它是没有...,也是content没有消失:

.readClass { 
    font-weight: normal; 
    width: 100px; 
    background-color: none !important; 
    content: "" 
} 

.msgs:after { 
    content: "1" 
} 

.msgs { 
    background-color: yellow; 
    width: 100px; 
} 

任何想法,为什么它不重写?

所有的JS代码:

function myfunc() { 
    var x = document.getElementById("myParagraph1"); 
    x.className += " myClass" 
} 

function sendMsg() { 
    var msg = document.getElementById('msg').value; 
    var msgObj = { 
    sender: 'Bob', 
    receiver: 'Paul', 
    read: false, 
    body: msg 
    } 
    messagesArray.push(msgObj) 
} 

function ifRead() { 
    readMsg(); 
    if (messagesArray[0].read === true){ 
    var x = document.getElementById('messageList'); 
    x.className += " readClass" 
    } 
} 

function readMsg() { 
    messagesArray[0].read = true; 
} 

function viewMsgs(){ 
    var node = document.createElement("p"); 
    node.className = "msgs"; 
    var value = document.getElementById('msg').value; 
    node.appendChild(document.createTextNode(value)); 
    document.getElementById('messageList').appendChild(node); 
} 
+0

你的'ifRead'代码在哪里? – HeadCode

+0

请提供js代码 –

+0

msgs'类有什么元素?如果它是包含*#messageList元素的元素,那么设置消息列表的透明背景不会改变任何内容。 – hughes

回答

2

none不是background-color的有效值。请参阅文档here。将其设置为transparent以明确删除它。

但是,更好的方法是添加一个指定背景色的类,然后在适当的时候删除该类。通过这样做,您不必指定要去的颜色。删除类只是将元素还原为其原始样式。

此外,要素支持classList属性,它本身支持:add()remove()toggle()方法使得它非常容易使用类(超过className容易)工作。

这里有一个简单的例子:

btn.addEventListener("click", function(){ 
 
    document.getElementById("btn").classList.toggle("backgroundOn"); 
 
});
.backgroundOn { 
 
    background-color:red; 
 
}
<div id="btn">Click Me to Toggle Classes</div>

+1

,'content:none'应该添加到他们想要改变的':after' /':before'规则中。 –

0

背景色黄被应用到任何容器,你已经把.msgs类上。

从您提供的代码中,没有应用于messageList div的背景颜色供您删除。

0

我想msg类是父类的父类。这就是为什么redclass的背景只有味精的背景仍然存在。如果您分享代码,这将有所帮助。