2013-07-17 82 views
0

我有一些DIV這樣的:壓倒一切的父CONTENTEDITABLE用JavaScript

<div id="op" contentEditable="true">hello<div class="dynamic">......sth 
</div> <div class="dynamic"> ...sth 
</div> .......<div class="dynamic"> </div>.. <div class="dynamic"> </div>..</div> 

ID爲「OP」的DIV中的div的是動態創建和附加到「OP」與的appendChild方法。在所有動態div添加後,我需要將div的「op」的contentEditable改爲false,而將「op」中的div改爲true。基本上,他這樣說,我的目標是能夠修改與真實CONTENTEDITABLE的div但被附加到假contentEditable.I股利這樣做:

document.getElementById("op").setAttribute("contentEditable",false); 
document.getElementsByClassName("dynamic").setAttribute("contentEditable",true); 

這不工作,我想原因很簡單。儘管我修改了「動態」類div的contentEditable,但它們仍然在div內,它具有錯誤的contentEditable。

有沒有什麼辦法可以覆蓋父ContentEditable屬性,這樣它就可以讓它的孩子保留自己的contentEditable,只要它有一個並應用父內容就可以編輯了嗎?

回答

1

你是否將categoryEditor的contentEditable屬性設置爲falsetrue?在你的代碼片段中,你將所有的div設置爲false

contentEditable(缺失時)的默認值爲inherit。因此,當您將元素的contentEditable設置爲true時,該元素的所有子元素也都是內容可編輯的。

給出下面的HTML您可以編輯的所有文本,甚至不小心刪除子div

<div id="parent" contenteditable="true"> 
    Parent div 
    <div id="child"><!-- contentEditable="true" is implied --> 
     Child div 
    </div> 
</div> 

而與此HTML你只能編輯文本「父格」:

<div id="parent" contenteditable="true"> 
    Parent div 
    <div id="child" contenteditable="false"> 
     Child div 
    </div> 
</div> 
+0

我的情況是「父母」是假的,「孩子」是真實的,與您在最後一個片段中顯示的內容相反。但是,由於虛假內容是可編輯的,這導致整個div。 –

+0

請參閱編輯的代碼。 –

+1

發現我的問題。謝謝... –