2017-05-03 91 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的背景只有味精的背景仍然存在。如果您分享代碼,這將有所幫助。