プロジェクトでDOMを操作するためにjQueryを使用しています。次のように機能するクラスメソッドがあります。
<!-- language: lang-js -->
var template = this._Template.split('{0}');
var content = template[0] + this._Content + template[1];
if (!this._BlockNode) {
this._BlockNode = $(content);
this._ParentNode.append(this._BlockNode);
}
else {
this._BlockNode.replaceWith(content);
}
このメソッドはノードを作成して親ノードに追加するため、このメソッドの最初の呼び出しではすべて問題ありません。2番目の呼び出し(replaceWith()
メソッドを使用)も問題なく機能します。しかし、その後のプロパティthis._BlockNode[0].parentNode
はnullです。したがって、3回目に呼び出して、プロパティなしreplaceWith()
でnewを使用すると、次のチェックのためにノードのコンテンツが置き換えられません。
どのように対処しますか?_.BlockNode
.parentNode
if ( !isDisconnected( this[0] ) ) { //line 5910 in jQuery 1.8.3