Dans un exemple, j'ai cette structure (petit exemple): dans jQuery je le créerais de manière dynamique: p> etc etc etc ... (beaucoup d'autres choses à écrire). Après que je voudrais juste l'ajouter: p> y a-t-il d'autre manière d'écrire une telle structure de manière dynamique avec jQuery? C'est un problème pour moi parce que j'ai une grande structure, pas aussi petite que je montrais dans l'exemple. La raison principale est que je veux obtenir une meilleure lisibilité pour moi-même et d'autres développeurs qui conserveront ce code. p> p>
5 Réponses :
Pouvez-vous faire un "modèle" de votre chaîne? Si oui, alors rangez-la dans une variable "constante" (par exemple définie dans la portée globale), contenant des espaces réservés pour des variables réelles, telles que Donc, vous auriez du code comme celui-ci: p> vous le feriez Ensuite, utilisez la mise en œuvre String.Format selon cette réponse: équivalent de la chaîne. Format en jQuery p> p> {0} code>,
{1} code> etc., Comme vous l'utiliseriez dans C # 's
string.format () code> méthode.
Voici un exemple simplifié:
$(function() { var tbl = $('<table></table>').attr({ id: "bob" }); var row = $('<tr></tr>').attr({ class: ["class1", "class2", "class3"].join(' ') }).appendTo(tbl); $('<td></td>').text("text1").appendTo(row); $('<td></td>').text("Test22").prepend($('<a></a>').attr({ href: "#" }).text("LINK")).appendTo(row); tbl.appendTo($(".somePlaceInHtml")); });
Vous pouvez créer un StringBuilder, un peu comme celui en C #. Voici un extrait de Extensions Telerik pour ASP.NET MVC :
var html = new $.stringBuilder(); for (var i in data) html.cat("<tr><td>").cat(i).cat("</td><td></tr>"); $('#element').append(html.string());
La matrice rejoint était i> plus rapide dans IE6. Dans les navigateurs actuels, la vitesse est approximativement la même - une concaténation parfois une chaîne est plus rapide, parfois une jonction de matrimonie. Voir mes repères ici: TIPS. Naivist.net/2010/01/19/...
Note prise! Merci - et voici un article supplémentaire que j'ai trouvé sur le sujet: james.padolsey.com/javascript/... - semble que la jointure est la meilleure ;-)
ou que vous pouviez au lieu de concaténer des cordes ensemble, utilisez donc le Array.join A > fonction.
window.onload = function(){ var btn = document.createElement("button"); btn.setAttribute("id", "submit_bttn"); btn.style.width = 125 + "px"; btn.style.height = 50 + "px"; btn.innerHTML = "Submit"; document.body.appendChild(btn); var x = document.getElementById("submit_bttn"); x.onclick = function(){ alert("hi"); } }
Golak, bienvenue à. Un texte descriptif à votre code serait bien!