web-dev-qa-db-fra.com

Un moyen plus simple d'obtenir un objet jQuery à partir d'un élément ajouté

Existe-t-il un moyen plus facile/plus rapide d'ajouter l'élément à l'aide de jQuery append:

Comment obtenir l'élément $ selectors:

$container.append('<div class="selectors"></div>');
var $selectors = $('.selectors', $container);

J'ai essayé:

var $selectors = $container.append('<div class="selectors"></div>');

mais cela fait $ selectors = $ container

C'est peut-être le moyen le plus rapide/le meilleur. Je vérifie.

78
slolife

Pourquoi pas seulement:

var el = $('<div class="selectors"></div>');
$container.append(el);

?

Ensuite, vous avez accès à "el".

153
cletus

C'est ma façon préférée de le faire:

var $selectors = $('<div class="selectors"></div>').appendTo(container);
60
Magnar
$selectors = $('<div/>').addClass('selectors').appendTo($container);
5
hobbs

Vous pouvez également créer une nouvelle fonction jQuery pour le faire:

jQuery.fn.addChild = function(html) 
{                               
    var target  = $(this[0])                            
    var child = $(html);                                                      
    child.appendTo(target);                                                   
    return child;                                                             
};  

puis utilisez-le comme ceci:

$('<ul>').addChild('<li>hi</li>');

bien sûr, si vous souhaitez ajouter plus d'un élément:

var list = $('<ul>');
list.addChild('<li>item 1</li>');
list.addChild('<li>item 2</li>');

L'avantage d'approches comme celle-ci est que plus tard, vous pouvez ajouter plus à la fonction "addChild" si vous le souhaitez. Notez que pour les deux exemples ci-dessus, vous devez ajouter l'élément au document, un exemple complet peut donc être:

$('body').addChild('<ul>').addChild('<li>hi</li>');
2
Brad Parks