1

.beforeDOMから切り離された要素を呼び出した場合.end、アタッチされた要素の場合とは異なる動作をします。

var $div1 = $("div");
console.log($div1.after("foo").end());  // [document]
$div1.detach();
console.log($div1.after("foo").end());  // [<div></div>]

(フィドル: http: //jsfiddle.net/R2uc7/2/

どうやら、接続または切断されているノードに応じて.before異なる動作を引き起こします。.endロジックがわかりません。何に頼れるかわかりません。

誰かがとの.end組み合わせの定義された動作について私に教えてもらえ.beforeますか?

4

1 に答える 1

1

jQuery v1.7.2pushStack、新しい DOM 要素を構築するために使用します。

pushStackjQuery オブジェクトのスタックにアイテムを追加し (図を参照してください)、end最後のアイテムをポップして、残りのスタック (残っているもの) を返します。


jQuery v1.7.2 行番号 5860:
注釈鉱山

before: function() {
    if ( this[0] && this[0].parentNode ) {
        return this.domManip(arguments, false, function( elem ) {
            this.parentNode.insertBefore( elem, this );
        });
    } else if ( arguments.length ) {
        var set = jQuery.clean( arguments );
        set.push.apply( set, this.toArray() ); 
        return this.pushStack( set, "before", arguments ); //pushStack in use
    }
}
于 2012-07-17T17:51:23.267 に答える