前提・実現したいこと
pushして作成した配列を複数回appendしようとしたときに、ハマりました。
問題自体は、pushを使わないことで解決できたのですが、
どうしてこういった挙動になるのか理解できないので、後学のためにご教授いただきたいです。
発生している問題・エラーメッセージ
片方にchangeイベントを発生させてappendしたあと、
もう片方でchangeイベントを発生させると、最初にappendされたテキストが消えてしまいます。
該当のソースコード
javascript
1$(function(){ 2 var a = []; 3 a.push($('<span>').attr({value:'a'}).text('a')); 4 5 $('#a01').change( function(){ 6 $('#a03').append(a); 7 }); 8 $('#a02').change( function(){ 9 $('#a04').append(a); 10 }); 11});
HTML
1<input type="text" id="a01"> 2<input type="text" id="a02"> 3<p id="a03"></p> 4<p id="a04"></p>
試したこと
こうすれば理想の挙動になりました。
javascript
1$(function(){ 2 var a = ['<span value="a">a</span>']; 3 4 $('#a01').change( function(){ 5 $('#a03').append(a); 6 }); 7 $('#a02').change( function(){ 8 $('#a04').append(a); 9 }); 10});
バージョン情報
GoogleChrome 64.0.3282.186
jQuery 3.2.1

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/02 02:17