Je pense personnellement qu'il est plus important que le code soit lisible et modifiable que performant. Celui que vous trouvez le plus facile à regarder devrait être celui que vous choisissez pour les facteurs ci-dessus. Vous pouvez l'écrire comme suit :
$('#box').append(
$('<div/>')
.attr("id", "newDiv1")
.addClass("newDiv purple bloated")
.append("<span/>")
.text("hello world")
);
Et votre première Méthode comme :
// create an element with an object literal, defining properties
var $e = $("<div>", {id: "newDiv1", name: 'test', class: "aClass"});
$e.click(function(){ /* ... */ });
// add the element to the body
$("#box").append($e);
Mais pour ce qui est de la lisibilité ; l'approche jQuery est ma préférée . Suivez cette Astuces, notes et meilleures pratiques concernant jQuery
9 votes
C'est juste une question de réutilisation. A vous de voir.
0 votes
@gdoron par réutilisabilité je veux dire : si vous avez un élément à l'intérieur d'une variable, alors vous pouvez rappeler cette var où vous voulez, comme dans votre exemple.
2 votes
Pourquoi
.html
mais pas.append
dans le 2e cas ?0 votes
@Engineer - Désolé, c'était une erreur ici. J'ai corrigé cela.
0 votes
Je pensais que la dernière méthode était plus rapide en termes de vitesse d'exécution mais la première semble (10% ~ 40%) plus rapide : jsperf.com/jquery-append-string-vs-append-jquery-reference
0 votes
@F.Calderan. Vous l'avez mal lu, "opérations par seconde (plus c'est élevé, mieux c'est)" . Et devrait le tester avec des éléments plus complexes qu'un div vide.
0 votes
Pour moi le premier fait 8000 ops/sec, le second 4900 ops/sec => le premier est plus rapide. de toute façon je vais essayer d'ajouter plus de balises :)
0 votes
@F.Calderan. Vérifiez ceci
0 votes
Duplication possible de Création d'un élément div en jQuery
0 votes
La première est une approche programmatique de construction de bas niveau (rapide). La seconde peut être un html complexe sous forme de chaîne qui est analysée (coûteux).