2011-06-25 5 views
1

DOMツリーの一部をグローバル変数に割り当てたいので、変数とDOMツリーの参照がなくなりました。 DOMツリーの一部をグローバル変数にコピーする必要があります。また、DOMツリーを変更するときに変数を変更しないでください。 通常の割り当てでは割り当てられません。コードスニペットとJavascriptで値で代入する

明確化:

var children; 

var Test { 

x: function(e) { 
... 
children = e.target.ownerDocument.getElementsByTagName('body')[0].childNodes; // rowX 
... 
e.target.ownerDocument.getElementsByTagName('body')[0].innerHTML = somethingElse; // rowY 

} 

} 

問題は、私は副作用としてchildren変数を変更しますchildren変数(rowX)とRowyのに保存されているものを持って欲しい、そうDOMといくつかの参照があるということですまだ木です。これが「値によって」はずでしょうどこ

は、DOMの一部が正確になり、先端

+0

私は申し訳ありませんが、何を?質問はなんですか?タイトルはあなたが書いた質問の本文にどのように関係していますか?何か試しましたか?何が悪かったのか?何がうまくいかなかったのですか?あなたはこれについて何か研究をしましたか? ...私は戦闘的ではないが、あなたの質問は私には分かりません。私は***ではありません。***はまだ終わりませんが、['Writing the Perfect Question'](http://tinyurl.com/so-hints)を読んだり、あなたが求めている質問ですか? –

+0

よろしくお願いいたします。 –

+0

@David Thomas私は説明を加えました。この質問に興味があるのであれば、明確ではないことを尋ねてください。私は自分の質問をより良くするでしょう。 – xralf

答えて

3

あなたはcloneNode(deep:Boolean)メソッドを使用することもできます。

var myVar = myNode.cloneNode(true); 
+2

[Mozilla Developer Centerの 'cloneNode'のエントリ](https://developer.mozilla.org/En/DOM/Node.cloneNode)にリンクしてください。 –

+1

+1重要な点は、 'childNodes'がライブリストを返すことです。 –

1

をありがとうございましたか!あなたはこのような何かを達成しようとすることができ

一つの方法は、jQueryを使って次のようになります。

var chunkByVal = $("#bigChunkOfDOM").html(); 
+0

私は彼がjQueryを使用しているとは思わない。 –

1

http://jsfiddle.net/KH8CA/

あなたのjqueryのにこれを使用することは非常に簡単である場合。ちょうどあなたの要素をつかんでそれを複製してください。この場合

var backupDom = $("#id").clone(true); 
+0

jQueryを使用しないと非常に簡単です; –

関連する問題