Domanda

lo capisco $fn.insertAfter() viene utilizzato per inserire l'elemento dopo l'elemento fornito come argomento. Com'è $fn.after() diverso da esso?

È stato utile?

Soluzione

$.fn.after()aiuto inserisce un elemento dopo il obbiettivo Elemento, su cui lo chiami.

$('div').after('<div>new div</div>');

invece, $.fn.insertAfter inserisce il obbiettivo elemento dopo il nodo specificato:

$('<div>new div</div>').insertAfter($('#someid'));

Quest'ultimo è per lo più preferito, perché tieni a riferimento All'elemento appena creato e può catena più metodi su di esso. Quindi, ad esempio:

$('<div>new div</div>')
   .insertAfter($('#someid'))
   .attr('foo', 'bar')
   .css({
      'background-color': 'red'
   });

è possibile. Non puoi farlo con .after()aiuto. La stessa cosa è .append()aiuto / .appendTo()aiuto e .insertBefore()aiuto / .before()aiuto

Altri suggerimenti

Questo è un esempio della stessa cosa, la differenza è il contesto del selettore. insertAfter Inserisce l'elemento selezionato dopo il parametroafter Inserisce il parametro dopo l'elemento selezionato.

$('<div id="foo"></div>').insertAfter('#bar');
$('#bar').after('<div id="foo"></div>');

Citando direttamente dalla documentazione:

Il .after() e .insertAfter()I metodi eseguono lo stesso compito. Il sindaco La differenza è nella sintassi—Il punto di vista, nel posizionamento del contenuto e del target. Insieme a .after(), l'espressione del selettore che precede il metodo è il contenitore dopo il quale viene inserito il contenuto. Insieme a .insertAfter(), d'altra parte, il contenuto precede il metodo, sia come espressione di selettore che come markup creato al volo, e viene inserito dopo il contenitore target.

Questo menziona che svolgono lo stesso compito ma hanno una sintassi diversa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top