J'ai 2 façons de créer une <div>
utilisation jQuery
.
Soit:
var div = $("<div></div>");
$("#box").append(div);
Ou:
$("#box").append("<div></div>");
Quels sont les inconvénients de l'utilisation d'une seconde voie autre que la réutilisation?
.html
, mais pas.append
dans le 2ème cas?Réponses:
La première option vous donne plus de flexibilité:
Et bien sûr,
.html('*')
remplace le contenu.append('*')
, mais je suppose que ce n'était pas votre question.Une autre bonne pratique consiste à préfixer vos variables jQuery avec
$
: Y a -t-il une raison spécifique derrière l'utilisation de $ with variable dans jQuery
Placer des guillemets autour du
"class"
nom de la propriété la rendra plus compatible avec les navigateurs moins flexibles.la source
$
", à mon avis. Juste en notant que ce que vous avez fait ne nécessite pas$div
:$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
$div
. Je n'ai jamais vu cette syntaxe auparavant, mais je suis nouveau sur Jquery.$("<div>", {id: "foo", class: "a"});
. Je veux savoir s'il y a d'autres options pour celaPersonnellement, je pense qu'il est plus important que le code soit lisible et modifiable que performant. Celui que vous trouvez plus facile à regarder et ce devrait être celui que vous choisissez pour les facteurs ci-dessus. Vous pouvez l'écrire comme:
Et votre première méthode comme:
Mais en ce qui concerne la lisibilité; l'approche jQuery est ma préférée . Suivez ces astuces, notes et meilleures pratiques jQuery utiles
la source
De manière beaucoup plus expressive,
Référence: Docs
la source
class
doit être entre guillemets, selon les documents (via le lien Documents ci-dessus): "Le nom" classe "doit être cité dans l'objet car il s'agit d'un mot réservé JavaScript, et" className "ne peut pas être utilisé car il fait référence à la propriété DOM , pas l'attribut. "Selon la documentation officielle de jQuery
Pour créer un élément HTML,
$("<div/>")
ou$("<div></div>")
est préféré.Ensuite , vous pouvez utiliser soit
appendTo
,append
,before
,after
et etc ,. pour insérer le nouvel élément dans le DOM.PS: jQuery version 1.11.x
la source
Selon la documentation de 3.4 , il est préférable d'utiliser des attributs avec la
attr()
méthode.la source
class
de guillemets, cela échouera en silence et peut entraîner une folie.Je recommanderais la première option, où vous construisez réellement des éléments à l'aide de jQuery. la deuxième approche définit simplement la propriété innerHTML de l'élément sur une chaîne, qui se trouve être HTML, et est plus sujette aux erreurs et moins flexible.
la source
Si
#box
est vide, rien, mais si ce n'est pas le cas, cela fait des choses très différentes. Le premier ajoutera undiv
comme dernier nœud enfant de#box
. Ce dernier remplace complètement le contenu de#box
par un seul vidediv
, texte et tout.la source
Il est également possible de créer un élément div de la manière suivante:
ajouter une classe
peut également effectuer
append()
etappendChild()
la source