この問題に遭遇した2日前まで、jsの要素を追加および削除することに慣れていると思っていました。
わかりました、これは私の問題です:
動的に div を作成し、ページの要素に追加し、配列で作成した新しい div にハンドルを追加し、後でループを実行して、配列内のすべての div を削除しようとしていました (配列とページの両方から) )
これはdivを作成するための私のコードです:
var this_object=this;this.tempdivs=new Array();var thandle='';
var t=document.createElement('div');var br=document.createElement('br');
var txt=document.createTextNode(content_body);
t.appendChild(content);t.appendChild(txt);t.appendChild(br);
thandle=this_object.chat_rec_handle.appendChild(t);
this_object.tempdivs.push(thandle);
this_object.chat_rec_handleは、作成後に追加する場所であり、実際に追加されます。
私の問題は、作成したdivを削除したいときです
var divlength=this_object.tempdivs.length;
for(var i = 0; i < divlength; i++)
{
var tempobj=this_object.tempdivs[this_object.tempdivs.length-1];
alert(tempobj.parentNode);
/* this alert gives me null, does that mean the parent no longer exists? */
tempobj.parentNode.removeChild(tempobj);
this_object.tempdivs.pop();
}
これは非常にイライラしますが、コードが間違っていないことはわかっています。何が間違っているのでしょうか?