0

我应该在分离之前做这样的检查吗?

if(for_detach.parent().length) {for_detach.detach();}

还是 jquery 自动做呢?

谢谢 ;)

更新

wr.find('iframe:hidden').show();与其他情况相同和不同。

4

1 回答 1

2

您可以随时查看源代码

在以下情况下detach

detach: function( selector ) {
    return this.remove( selector, true );
},

// keepData is for internal use only--do not document
remove: function( selector, keepData ) {
    for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
        if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
            if ( !keepData && elem.nodeType === 1 ) {
                jQuery.cleanData( elem.getElementsByTagName("*") );
                jQuery.cleanData( [ elem ] );
            }

            if ( elem.parentNode ) {
                elem.parentNode.removeChild( elem );
            }
        }
    }

    return this;
},

所以是的,jQuery 将确保在它与它分离之前有一个父级,但它不会忽略该调用。

调用两次是否有效果取决于函数。

当然,如果您调用show两次,那么第二次调用将不会有任何(可见)效果。但这并不意味着 jQuery 在后面没有做任何事情。看看show实现

于 2011-07-09T11:06:57.167 回答