我在我的项目中使用 jQuery 来操作 DOM。我有类方法,它的工作原理是这样的:
<!-- 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);
}
第一次调用此方法时一切正常,因为它创建节点并将其附加到父节点。第二次调用(使用replaceWith()
方法)也可以。但是在它之后属性this._BlockNode[0].parentNode
为空。因此,当我第三次调用它并使用没有属性replaceWith()
的 new时,它不会因为这个检查而替换节点的内容:
如何处理?_.BlockNode
.parentNode
if ( !isDisconnected( this[0] ) ) { //line 5910 in jQuery 1.8.3