0

私はこのようないくつかのdivを持っています:

<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 は動的に作成され、appendChild メソッドで「op」に追加されます。すべての動的 div を追加したら、div "op" の contentEditable を false に変更し、"op" 内の div を true に変更する必要があります。基本的に、そうは言っても、私の目標は true contentEditable で div を変更できるようにすることですが、それは false contentEditable で div に追加されます。私はこれを行いました:

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

これは機能しません。理由は簡単だと思います。「動的」クラスの div の contentEditable を変更しましたが、それらはまだ、偽の contentEditable を持つ div 内にあります。

親 contentEditable プロパティをオーバーライドして、子が contentEditable を持っているときはいつでも独自の contentEditable を保持し、それ以外の場合は親コンテンツ Editable を適用できるようにする方法はありますか?

4

1 に答える 1

1

クラス「動的」のdivに、falseまたはdivに対してcontentEditable属性を設定していますか? trueスニペットでは、すべての div を に設定していますfalse

contentEditableのデフォルト値(欠落している場合) はinheritです。したがって、要素の contentEditable を に設定すると、trueその要素のすべての子もコンテンツ編集可能になります。

次の HTML を指定すると、すべてのテキストを編集でき、誤って child を削除することさえできますdiv

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

そして、この HTML では、テキスト "Parent div" のみを編集できます。

<div id="parent" contenteditable="true">
    Parent div
    <div id="child" contenteditable="false">
        Child div
    </div>
</div>
于 2013-07-17T13:33:26.360 に答える