Sto cercando di capire il cambiamento di comportamento di .appendTo() api nella versione jQuery 1.9.1 dalle versioni precedenti. Nella Guida all'aggiornamento dicecambia in .appendTo() in jquery1.9.1
A partire dal 1.9, questi metodi (
.appendTo
,.insertBefore
,.insertAfter
, e.replaceAll
) restituiscono sempre una nuova serie, che li rende costantemente utilizzabile con concatenamento e il metodo.end()
. Prima di 1.9, restituivano il vecchio set solo se c'era un singolo elemento di destinazione. Si noti che questi metodi hanno sempre restituito il set aggregato di tutti gli elementi aggiunto agli elementi di destinazione.
ho provato con un semplice utilizzo di questa API
<div class="test">hello
</div>
var $ = jQuery.noConflict();
var a =$("<p> hi </p>").appendTo("div.test").attr("style","background-color:red");
console.log(a);
Ecco la fiddle link
sto aggiungendo un elemento di paragrafo in un div e quindi modificando lo sfondo dell'elemento risultante. Ho provato questo con entrambi 1.7.2 e 1.9.1 in entrambi i casi il risultato dopo l'aggiunta è l'elemento di paragrafo.
Ma è stato spiegato nel documento che prima di 1.9 restituisce il vecchio set (nel mio esempio il vecchio set si riferisce all'elemento div credo). Ho sicuramente un'idea sbagliata su questo.
Si prega di aiutare a correggere la mia comprensione.
In 1.9.1 si restituisce: [p, prevObject: jQuery.fn.jQuery.init [1], il contesto: non definito, jquery: "1.9.1", costruttore: la funzione, init: la funzione ...] In 1.7.2: [p, costruttore: function, init: function, selector: "", jquery: "1.7.2 ", dimensione: funzione ...] Confrontali e analizzali più da vicino.Anche nota che sono in effetti un po 'diversi l'uno dall'altro e afferma anche che sono più coerenti, nel senso che non erano del tutto coerenti in anticipo – Lemonade
Prova a usare 'end()': '$ ("
hi
") .appendTo (" div.test "). End(). Attr (" style "," background-color: red ")'. – mezeno problema, usare 'var a = $ (" div.test "). append ("
hi
");' – vladkras