2016-08-15 2 views
0

このJSはhtml要素をmyHTMLに保存しようとします。後でその要素が変更されると、変数も変更されます。
myHTMLのコピーを保存して後で使用するにはどうすればよいですか?変数にhtml要素を保存

let myHTML = ''; 
$('td.label').each(function() { 
    if (this.textContent === "sign:") { 
    if (!myHTML) myHTML = this.parentElement; 
    return false; 
    } 
}); 

//later the elemnt gets changed 
$('td.label').each(function() { 
    if (this.textContent === "sign:") { 
    this.parentElement.appendChild(some-html-element) 
    return false; 
    } 
}); 

console.log(myHTML); //it includes the some-html-element 
+2

http://stackoverflow.com/questions/921290/is-it-possible-to-clone-html-element-objects-in-javascript-jquery –

+0

常にではない、@NJDawsonます。https:// jsfiddle.net/z481LL1z/1/ – eisbehr

+0

そこにhtmlオブジェクト全体が必要ですか?そうでなければ、html文字列を使用できます。 myHTML = this.parentElement.html() – Indra

答えて

0

要素のコピーmyHTMLを設定するために使用the cloneNode() method

myHTML = this.parentElement.cloneNode();

+0

私は望んでいないツリーの残りの部分をクローンしません。私は木全体をクローンしたい –

0

は、私はそれがオブジェクトであるため、JSはそれを参照し、変更になると思うも、あなたのmyHTMLオブジェクトも変更されます。このアプローチは、DOMオブジェクトを直接使用していないため、正しく動作するはずです。

var myHTML; 

$('td.label').each(function() { 
    if($(this).text() === "sign:") { 
     if(!myHTML) { 
      myHTML = $(this).parent(); 
     } 

     return false; 
    } 
}); 

$('td.label').each(function() { 
    if($(this).text() === "sign:") { 
     $(this).parent().append("some-html-element"); 
     return false; 
    } 
}); 

console.log(myHTML); 
関連する問題