如何使用javascript自由操作HTML DOM元素?

时间:2014-07-07 13:42:44

标签: javascript html

假设我在contenteditable模式中有一个元素,并且我不想对DOM进行一些操作,同时使更改可以撤消。我尝试了一般的createNode,appendChild,removeChild,setAttribute,但它们似乎无法撤销......

有没有办法让这些操作可以撤消?怎么样?

3 个答案:

答案 0 :(得分:0)

不要让整个元素满足,使每个元素的后代成为可信的,例如

<div id = 'main' >
    <div id = 'child1' ></div>
    <div id = 'child2' ></div>
</div>

在这里你应该让child1和chil2满足,这样他们将保留在dow中,你可以将元素附加到主要内容而不用担心它们会被删除。

答案 1 :(得分:0)

将旧值存储在变量中,这样您就可以撤消&#34;撤消&#34;通过恢复该值。

您可以通过在Cookie / localstorage中的json字符串中保存列ID和旧值来使可撤销状态保持不变。

答案 2 :(得分:0)

哼哼......这是做到这一点的最佳方式,我的意思是,据我所知,有一个功能可以保持并关注用户输入和用户键入的内容存储在一个对象中并删除在其他对象或数组中的单词,然后如果用户按ctrl + z然后另一个函数来查找最后一个退格的单词并将其添加到现有文本中。而这样做似乎很复杂。

<textarea id="div" contenteditable="true" >
</textarea>
<p id="p">dd </p>

的CSS:

#div {
    width:300px;
    height:260px;
    border:2px solid #ff9000;
}

jsvascript:

var div = document.getElementById("div");
div.onkeypress = function(evt){
     var words = [];
    evt  = evt.keyCode;
    var event = String.fromCharCode(evt);
//    alert(event);
    words.push(event);
}

我将为此添加更多...