Divulgazione: sono il manutentore di BOB.
C'è una libreria javascript che rende questo processo molto più semplice chiamata BOB .
Per il tuo esempio specifico:
<div><img src="the url" />the name</div>
Questo può essere generato con BOB dal codice seguente.
new BOB("div").insert("img",{"src":"the url"}).up().content("the name").toString()
//=> "<div><img src="the url" />the name</div>"
O con la sintassi più breve
new BOB("div").i("img",{"src":"the url"}).up().co("the name").s()
//=> "<div><img src="the url" />the name</div>"
Questa libreria è abbastanza potente e può essere utilizzata per creare strutture molto complesse con inserimento dati (simile a d3), es .:
data = [1,2,3,4,5,6,7]
new BOB("div").i("ul#count").do(data).i("li.number").co(BOB.d).up().up().a("a",{"href": "www.google.com"}).s()
//=> "<div><ul id="count"><li class="number">1</li><li class="number">2</li><li class="number">3</li><li class="number">4</li><li class="number">5</li><li class="number">6</li><li class="number">7</li></ul></div><a href="www.google.com"></a>"
BOB attualmente non supporta l'inserimento dei dati nel DOM. Questo è sulla todolist. Per ora puoi semplicemente usare l'output insieme al normale JS, o jQuery, e metterlo dove vuoi.
document.getElementById("parent").innerHTML = new BOB("div").insert("img",{"src":"the url"}).up().content("the name").s();
//Or jquery:
$("#parent").append(new BOB("div").insert("img",{"src":"the url"}).up().content("the name").s());
Ho creato questa libreria perché non ero soddisfatto di nessuna delle alternative come jquery e d3. Il codice è molto complicato e difficile da leggere. Lavorare con BOB è secondo me, che ovviamente è di parte, molto più piacevole.
BOB è disponibile su Bower , quindi puoi ottenerlo correndo bower install BOB
.