2014-07-01 160 views
-1

對不起,如果你發現這個問題愚蠢,但也許是因爲是晚上,我找不到解決方案。更改div的結構內容(無JQuery)

基本上,我在js中創建了一些div。例如

function a(){ 
    var div = createElement('div'); 
    var div2 = createElement('div'); 
    // I add stuff to div 2 
    var div3 = createElement('div'); 
    // I add stuff to div 3 

    div.appendChild(div2); 
    div.appendChild(div3); 

    return div; 
} 

然後我不得不說。在第一種情況下,我想將這個div添加到現有的div,並在第二我想修改這個現有的div。

我做類似的東西

function addOrModify(value,container){ 
    // if value = true i add this div to the container 
    if(value){ 
     container.appendChild(createDivStructure()); 
    } 
    //else i want my container to be like the div i created 
    else{ 
     container = createDivStructure(); 
    } 
} 

但第二種情況下不工作,它什麼也不做,股利保持不變。 :x 如果我console.log容器和createDivStructure();我有很好的結果。

所以這裏的問題,任何人都知道如何做到這一點?我如何可以用我創建的新div替換容器?

THX您:d

+0

請展開 「不起作用」 – Smeegs

+0

我假設'container.appendChild(createDivStructure());'工作正常,你需要另一個人的幫助? – Cerbrus

+0

它什麼都不做,div保持不變。我嘗試刪除第一個,並添加第二個,但她被添加到容器的末尾:/ @Cerberus是的抱歉我編輯 – Crocsx

回答

1

這應該做的伎倆:

function addOrModify(value,container){ 
    if(value){ 
     container.appendChild(createDivStructure()); // This seems just fine. 
    } else{ 
     // Insert the new element before the "Target": 
     container.parentElement.insertBefore(createDivStructure(), container); 
     // Remove the "Target": 
     container.parentElement.removeChild(container); 
    } 
} 
+0

天哪,太容易了......我一定很累。 Thx你這麼多人:) '接受'在6分鐘回答 – Crocsx

+0

人們經常忘記'insertBefore' ;-) – Cerbrus