Ujawnienie: jestem opiekunem BOB.
Istnieje biblioteka javascript, która znacznie ułatwia ten proces, zwana BOB .
Twój konkretny przykład:
<div><img src="the url" />the name</div>
Można to wygenerować za pomocą BOB za pomocą następującego kodu.
new BOB("div").insert("img",{"src":"the url"}).up().content("the name").toString()
//=> "<div><img src="the url" />the name</div>"
Lub z krótszą składnią
new BOB("div").i("img",{"src":"the url"}).up().co("the name").s()
//=> "<div><img src="the url" />the name</div>"
Ta biblioteka jest dość potężna i może być używana do tworzenia bardzo złożonych struktur z wprowadzaniem danych (podobnie do d3), np .:
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 obecnie nie obsługuje wprowadzania danych do DOM. To jest na liście rzeczy do zrobienia. Na razie możesz po prostu użyć wyniku razem z normalnym JS lub jQuery i umieścić go w dowolnym miejscu.
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());
Zrobiłem tę bibliotekę, ponieważ nie podobała mi się żadna z alternatyw, takich jak jquery i d3. Kod bardzo skomplikowany i trudny do odczytania. Praca z BOBem jest moim zdaniem, co jest oczywiście stronnicze, dużo przyjemniejsza.
BOB jest dostępny na Bower , więc możesz go zdobyć biegając bower install BOB
.