2016-12-06 62 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/) –