2013-07-17 42 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

发现我的问题。谢谢... –