Comment puis-je créer ces imbriquée des éléments du dom avec jquery?
Compte tenu de ces variables javascript:
var div_id = "my_div";
var h1_class = "my_header";
var a_class = "my_a_class";
var a_string = "teststring";
et cet élément de page:
<div id="container"></div>
Je veux construire cette structure html avec jQuery:
<div id="container">
<div id="my_div">
<h1 class="my_header">
<a href="/test/" class="my_a_class">teststring</a>
</h1>
</div>
</div>
Quelle est la meilleure et la plus lisible pour la chaîne de la commandes ici?
- J'aime toutes les différentes façons de le faire. 😀
Vous devez vous connecter pour publier un commentaire.
Mis à JOUR
JSON
$('#container').html($('</div>'))
au lieu deappendTo()
, mais ils sont deux choses différentes, html remplacera tout à l'intérieur de#container
tout appendTo juste injecter du code. les performances devraient être presque la même chose, je suppose.C'est le tidiest moyen de la chaîne de commandes dans votre sortie désirée:
Pas nécessairement le moyen le plus efficace, mais certainement lisible.
Utilisation
wrapInner()
et enveloppez-les à partir à l'intérieur.Vérifier exemple de travail à http://jsfiddle.net/fWXYC/3/
Exemple: http://fiddle.jshell.net/yXFxQ/2/
http://jsfiddle.net/ALs6R/
Utilisation jQuerys wrap() méthode.
C'est plus lisible et maintenable si le code JavaScript ressemble à de la balise HTML de la structure, de la même façon que Luca a répondu.
J'ai fait cela un peu différemment et fait une fonction pour faire de chaque élément éditable objet jQuery.
Par exemple:
Où l' $$ fonction retourne un objet jQuery:
Cela rend l'approche plus flexible et vous pouvez ajouter des gestionnaires d'événements, de données, etc. à la imbriquée jQuery objets à l'aide de chaînage assez facilement.
Par exemple:
Vous ne voulez probablement pas à en faire trop, mais je trouve toujours le code plus lisible que si l'on devait utiliser les meilleures pratiques jQuery approche de le faire avec des appels distincts à .append(), .text ().html (), etc. ou par l'injection du jQuery $ a concaténé chaîne HTML.
Ici est la référence $ la fonction $ (vous pouvez l'appeler autre chose si vous n'aimez pas ça, mais je pensais $$ est appropriée car elle retourne un objet jQuery et il est également de courte durée):
Essayer ce?