2016-12-06 66 views
0

所以我試圖創建一個HTML頁面的動態內容,使用JavaScript創建基於點擊事件的元素,這將受到現有CSS樣式的影響。分配CSS ID到Javascript創建元素

但我似乎無法將新元素掛接到它的CSS ID。

crestDiv.onclick = function() 
{ 
    //Remove the Elements on Screen 
    var element = document.getElementById("crestDiv"); 
    element.parentNode.removeChild(element); 
    element = document.getElementById("breakDiv"); 
    element.parentNode.removeChild(element); 
    element = document.getElementById("buildDiv"); 
    element.parentNode.removeChild(element); 
    element = document.getElementById("surgeDiv"); 
    element.parentNode.removeChild(element); 
    element = document.getElementById("wavesIcon"); 
    element.parentNode.removeChild(element); 

    //Add the Elements to Screen 

    //Create Heading 
    var heading = document.createElement("h1"); 
    heading.id = "crestTitle"; 
    var node = document.createTextNode("Crest Heading"); 
    heading.appendChild(node); 

    //Attach Heading to existing Element 
    element = document.getElementById("contentDiv"); 
    element.appendChild(heading); 
} 

它的工作原理,在標題屏幕上的內容,其餘全部消失後出現,但對其沒有CSS樣式。

你可以看到我正在嘗試使用「crestTitle」的CSS ID來應用到新的標題,但無論我放在CSS表格中的#crestTitle的樣式如何,它都不會影響新的標題。

我在做任何明顯的錯誤嗎?

+1

您應該使用一個CSS類。即'.crestTitle'和'heading.classList.add(「crestTitle」);' – Satpal

+0

什麼是CSS?你最終有多個具有相同ID的物品?基本的HTML,所以我們可以運行它? – epascarello

+0

將您的HTML代碼添加到問題中 – anu

回答

2

你能提供一個jsfiddle包括你的HTML和CSS嗎? 這個工作對我來說:https://jsfiddle.net/nw35g21x/

CSS:

#crestDiv{ 
    width:100%; 
    min-height:100px; 
    background-color:cyan; 
} 

#crestTitle{ 
    color:red; 
} 

HTML:

​​

的JavaScript:

var crestDiv = document.getElementById("crestDiv"); 
crestDiv.onclick = function() 
{ 
    //Remove the Elements on Screen 
    var element = document.getElementById("crestDiv"); 

    //Add the Elements to Screen 

    //Create Heading 
    var heading = document.createElement("h1"); 
    heading.id = "crestTitle"; 
    var node = document.createTextNode("Crest Heading"); 
    heading.appendChild(node); 

    //Attach Heading to existing Element 
    element = document.getElementById("contentDiv"); 
    element.appendChild(heading); 
} 
+0

我不確定jsfiddle的效果是否會因缺少本地保存的圖片等而有效,但在這裏你可以去 http://jsfiddle.net/v8g86cpe/ – Jayson

+0

樣式應用於元素。但你需要將CSS屬性從'font-color'更改爲'color' –

+0

我已經更新了你的小提琴[here](http://jsfiddle.net/v8g86cpe/1/) –