DOM之文档修改更新
2016-04-15 12:52:26 来源:极客头条
上面DOM操作方法的描述定义在DOM LEVEL 中.
创建元素 下面的方法是在DOM创建一个新的元素节点:
document.createElement(tag)
创建新的DOM元素:
var div = document.createElement('div') document.createTextNode(text)
创建新的DOM文本节点:
var textElem = document.createTextNode('Robin was here') createElement是使用最多的方法, 但是createTextNode也是常使用的. 它创建一个文本节点可以追加到另外的元素节点中. 对于一个空的元素节点. 创建一个文本节点追加到它里面比起innerHTML要快得多. 但是innerHTML非常简单, 也支持标签嵌套, 因此他们两个都有各自的有用之地.
一个元素可以被复制:
elem.cloneNode(true)
深入复制, 会复制它的子节点
elem.cloneNode(false)
复制节点,包含属性. 但是不包含子节点.
添加元素 元素做某些事情, 你需要调用他们相应的方法:
parentElem.appendChild(elem)
追加elem到parentElem, 作为子节点.
下面例子演示了创建和添加新元素到BODY:
代码名称
...
新的节点作为parentElem的最后一个子节点.
一个空的DOM节点elem. 有什么不一样?
elem.appendChild(document.createTextNode(text)) parentElem.insertBefore(elem, nextSibling)
在nextSibling元素之前,插入elem到parentElem.
下面代码演示了在第一个子节点之前插入一个新的节点:
代码名称
...
提示: 如果insertBefore的第二个参数是null, 则与appendChild作用一样.
elem.insertBefore(newElem, null) elem.appendChild(newElem) 所有的插入方法返回插入节点.
移除节点 DOM移除节点, 主要有两个方法:
parentElem.removeChild(elem)
从parentElem中移除子节点elem.
parentElem.replaceChild(elem, currentElem)
通过elem替换parentELem子节点currentElem.
两个方法都返回移除的节点, 移除的节点还可以插入到DOM中.
如果你想移动节点, 首先就不要移除他.
elem.appendChild/insertBefore 从他之前的位置自动删除elem
下面的代码将最后一个子节点移动到最开始的地方:
代码名称 First div
Last div
当有一个父元素的节点插入方法被调用时, 移除自动发生.
总结 创建方法:
document.createElement(tag) - 创建新的元素节点
document.createTextNode(value) - 创建新的文本节点
elem.cloneNode(deep) - 复制节点
通过父节点来插入和移除节点. 所有的都返回elem:
parent.appendChild(elem)
parent.insertBefore(elem, nextSibling)
parent.removeChild(elem)
parent.replaceChild(elem, currentElem)
本文属于吴统威的博客,微信公众号:bianchengderen,QQ群:186659233 的原创文章,转载时请注明出处及相应链接:http://www.wutongwei.com/front/infor_showone.tweb?id=228 ,欢迎大家传播与分享.