複製節點(cloneNode)

2022-08-30 11:54:10 字數 1964 閱讀 3904

dom提供用來複製節點方法。

clonenode():將為給定節點建立乙個副本,這個方法的返回值是乙個指向新建轉殖節點的引用指標,

reference = node.clonenode(deep)

這個方法只是有乙個布林型別的引數,它的可取值只能是true和false,這個引數決定著是否要把複製節點的子節點也一同複製到新建節點裡面去,如果這個引數值是true,新節點包含著被複製完全一樣的子節點。如果這個引數值是false,新節點將不包括任何子節點---,如果被複製節點是乙個元素節點,著意味著包含在被複製節點裡的所有文字將不會被複製,但是屬性節點會被複製:

reference = node.clonenode(true

);reference = node.clonenode(false);

clonenode()方法所返回的引用指標指向乙個節點物件。新節點有著與被複製節點完全一樣的nodetype()和nodename的屬性值:

var para = document.createelement("p");

var newpara = para.clonenode(false);

在這個例子中先建立新的元素節點para,然後通過複製para元素節點有建立乙個新的元素節點newpara,para.nodetype返回值將是1,newpara.nodetype返回的值也將是1。

再來看乙個例子:

var message = document.createelement("hello world");

var newmessage = meaage.clonenode(false);

在此例子中,我們先建立了乙個新的文字節點message,然後通過複製message文字節點又建立了乙個新的文字節點newmessage。message.nodetype/返回值將是3,

在下面的例子中,給定節點和它的子節點都被複製到新的節點裡面:

var para = document.createelement("p");

var message = document.createtextnode("hello world");

var newpara = para.clonenode(true);

因為在發出para.clonenode()呼叫時候傳遞的引數是true,所以新建立的元素節點newpara也將有乙個包含著文字「hello word」的子文字節點。

下面這段**在複製節點時沒有把子節點包括進來:

var para = document.createelement("p");

var message = document.createtextnode("hello world");

var newpara = para.clonenode(false);

與被複製的para節點一樣,新節點newpara也是乙個元素節點。para節點還有乙個包含著文字「hello world」的自文字節點,但newpara節點沒有任何自節點。

var para = document.createelement("p");

var message = document.createtextnode("hello world");

var newpara = para.clonenode(true

);

在此例子中,第一條語句建立了乙個para文字段元素,第二條語句建立了乙個message文字節點,第三條語句把message文字節點插入para元素節點,第四條語句把para插入文件body元素,接下來,第五條語句呼叫clonenode()方法從para節點複製出了乙個新的元素節點newpara,第六條語句把newpara插入文件的body元素,最後兩個相同的文字段被插入了文件。

請注意:如果被複製元素有乙個獨一無二的id屬性,千萬不要忘記對複製出來的新元素的id屬性進行修改,在同乙個文件裡面,不同元素的id屬性值必須各不相同。

cloneNode與事件拷貝

用法 var newnode oldnode.clonenode deep deep,布林值,若為true,則轉殖oldnode及其子節點,否則只轉殖oldnode本身 關於複製事件 1.內聯的事件,例如 onclick會被複製,並且可以正常使用 2.ie的attachevent註冊的事件,會被複製...

mongo 單節點 搭建複製集

伺服器情況 現有的單節點 primary 172.23.2.101 27017 新增的節點 secondry 172.23.2.102 27017 仲裁節點 arbiter 172.23.2.2 27017 mongo 版本 3.2.12 1.停止單節點primary的mongo服務 use adm...

DOM中cloneNode的使用之旅

struts2中可以自動封裝表單提交過來的引數 listexseasonout new arraylist 但是頁面中需要可以通過js動態新增行,實現 如下 看一下這行 的效果 newtr.innerhtml newtr.innerhtml.replace d g,tr.index img 結果td...