Maison  >  Questions et réponses  >  le corps du texte

javascript - À propos de la méthode Remove() de jquery

Je ne comprends pas très bien ici. Sera-t-il supprimé de l'objet jquery ? Si vous souhaitez le supprimer, comment le supprimer ?

阿神阿神2663 Il y a quelques jours1043

répondre à tous(1)je répondrai

  • 学习ing

    学习ing2017-07-05 11:08:29

    Concernant la suppression, on regarde le code source comme ceci : extrait de jquery2.x

    // keepData is for internal use only--do not document
        remove: function( selector, keepData ) {
            var elem,
                elems = selector ? jQuery.filter( selector, this ) : this,
                i = 0;
    
            for ( ; (elem = elems[i]) != null; i++ ) {
                if ( !keepData && elem.nodeType === 1 ) {
                    jQuery.cleanData( getAll( elem ) );
                }
    
                if ( elem.parentNode ) {
                    if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
                        setGlobalEval( getAll( elem, "script" ) );
                    }
                    elem.parentNode.removeChild( elem );
                }
            }
    
            return this;
        },

    Suivez l'exemple de code $('p').remove()Combiné au code source, le plus pratique est le RemoveChild natif

    https://developer.mozilla.org...

    Et RemoveChild, voici une description de MDN :

    Le nœud enfant supprimé existe toujours dans la mémoire, mais il n'est pas ajouté à l'arborescence DOM du document actuel. Par conséquent, vous pouvez également rajouter ce nœud au document. Bien entendu, l'implémentation doit utiliser une autre variable telle. comme oldChild ci-dessus dans l'exemple est utilisé pour enregistrer la référence à ce nœud, si la deuxième méthode dans la syntaxe ci-dessus est utilisée, c'est-à-dire que oldChild n'est pas utilisé pour enregistrer la référence à ce nœud, le nœud supprimé est considéré comme étant. inutile en peu de temps Il sera recyclé par la gestion de la mémoire.

    La marque marquée par le propriétaire de la question ne sera pas supprimée de l'objet jQuery. De même, le propriétaire de la question peut trouver un dom jQuery sur la page et le consulter,
    par exemple

    .
    var t = $('#test');
    t.remove();

    Voici un objet jQuery, contenant les informations du dom qui a été supprimé.

    Comme cité par mdn ci-dessus, si vous n'utilisez pas de variables pour enregistrer le dom supprimé, il attend d'être recyclé.

    Bien sûr, cela peut ressembler à ce qui précède, ou t est utilisé pour enregistrer les informations dom, et c'est sur t[0], alors vous pouvez essayer delete(t[0]) ?

    = =Je ne sais pas comment tester si le dom a été recyclé. Mais en gros elle a été supprimée et non citée. Si la page DOM n'est pas très compliquée, elle peut être ignorée pour le moment. Ceci est mon opinion, n'hésitez pas à me faire savoir si je me trompe ~

    répondre
    0
  • Annulerrépondre